我有一個加載任何解決方案(.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」的批處理文件,然後該應用程序運行良好。 –