为什么我的project.json/xproj项目没有在Visual Studio 15(预览版)中打开?

Mar*_*ell 16 .net visual-studio visual-studio-2015 project.json

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

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

Mar*_*ell 26

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

向后兼容保持在VS 2015年,但这些老xproj支持还没有在VS 15这样被保存下来,你要么需要编辑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)' != ''" />
Run Code Online (Sandbox Code Playgroud)

与任何一个:

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

要么:

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

如您所见,这反映了工具的发展.VS 15中不再支持第一个选项.最终选项可能最接近RTM的样子,但在VS 2015中不能使用当前工具.那么......你现在可能想要中间选项.

  • @ErikPhilips:我刚刚安装了Microsoft Visual Studio社区2015版本14.0.25422.01更新3,文件夹名称是DNX,即C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\DNX (3认同)
  • 它看起来像`.DNX.<whatever>`是RC1和`.DotNet.<whatever`是RC2.(我升级了,其他人没有,我们无法弄清楚为什么新的项目没有打开,但旧的项目没有. (2认同)