我有一个加载任何解决方案(.sln)文件的VS 2013控制台应用程序 - 使用Roslyn编译其中的所有项目,并从编译模型中提取API使用信息。MSBuildWorkspace.OpenSolutionAsync在Visual Studio/v14.0中查找目标
我现在面临这个奇怪的问题 - 当我从Visual Studio 2013(使用Ctrl-F5或F5)运行应用程序时,一切正常。我能够编译东西并提取所有信息。 然而,当我打开命令行(CMD),并尝试从我收到以下错误运行此控制台应用程序:
Unhandled Exception: System.AggregateException: One or more errors occurred. ---> Microsoft.Build.Exceptions.InvalidProjectFileException: The imported project "
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Impor
When I run
注意v14.0那里。为什么MSBuildWorkspace试图查看所需目标文件的v14.0目录?是否因为我安装了用于CTP的MSBuild工具和默认路径,而从简单命令行运行的东西已更改?
- 编辑 - 这里是进口
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
不过,我怀疑这是用import语句这样做。如果我从“Visual Studio 2013的开发人员命令提示符”运行控制台应用程序.exe,一切都可以正常工作。
向我们展示您的项目文件中的。 –
SLaks
我遇到了同样的问题。你能解决这个问题吗? – ChaseMedallion
不是一个真正的解决方案,但正如你提到它从VS命令提示符工作。作为一种解决方法,我创建了一个首先调用“C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ VC \ vcvarsall.bat”的批处理文件,然后该应用程序运行良好。 –