我有一个涉及多个我已经从事一段时间的project.json(和相应的xproj)项目的现有解决方案。它在Visual Studio 2015中工作正常,但无法在VS 15中加载(预览),仅显示每个加载失败的图标。没有消息被打印。

发生了什么事,我该如何解决?

最佳答案

您的xproj可能是使用dnx工具的早期版本(自动)创建的。这使用了当时支持的特定MSBuild导入,但是随着DNX工具的发展而被替换(最近:被DotNet替换)。

向后兼容性在VS 2015中保留,但在VS 15中未保留对这些旧xproj的支持。因此,您将需要编辑xproj,或者(简单)仅删除.xproj和.xproj.user,然后删除解决方案中的项目,然后重新添加;这将使用当前工具重新创建xproj。

如果要手动编辑,则应替换:

<Import Project="$(VSToolsPath)\AspNet\Microsoft.Web.AspNet.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\AspNet\Microsoft.Web.AspNet.targets"
    Condition="'$(VSToolsPath)' != ''" />


与:

<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets"
    Condition="'$(VSToolsPath)' != ''" />


要么:

<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props"
    Condition="'$(VSToolsPath)' != ''" />
...
<Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets"
    Condition="'$(VSToolsPath)' != ''" />


如您所见,这反映了工具的发展。 VS 15中不再支持第一个选项。最后一个选项可能最接近RTM的外观,但是在使用当前工具的VS 2015中不起作用。所以...您现在可能想要中间选项。

07-28 03:32