我使用VS2015构建了一个Web网站,在那里我使用了Microsoft.Build.Evaluation,这样我就可以语法地浏览项目中的文件了。在使用VS2017时,我会得到以下错误:
没有找到Microsoft.Build.Exceptions.InvalidProjectFileException:‘导入的项目"C:\Program (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets“。请确认声明中的路径是正确的,并且文件存在于磁盘上。C:\User\MyUser\Source\Workspace\MyProject TFVC2\Gemstar\MyProject.csproj’
这是我的代码:
using Microsoft.Build.Evaluation;
Project project = new Project();
if (ProjectCollection.GlobalProjectCollection.GetLoadedProjects(mPath + "MyProject.csproj").Count == 0)
{
project = new Project(mPath + "MyProject.csproj");
}
else
{
project = ProjectCollection.GlobalProjectCollection.GetLoadedProjects(mPath + "MyProject.csproj").FirstOrDefault();
}我想提一下,我从BuildTools安装了VS2017的https://www.visualstudio.com/thank-you-downloading-visual-studio/?sku=BuildTools&rel=15
发布于 2020-08-25 15:26:27
Mac操作系统-
我通过安装Mono的最新版本来解决这个问题。
发布于 2018-02-14 04:48:48
不能在Microsoft.Build.Evaluation中使用VS2017
似乎是MSBuildExtensionsPath32在Microsoft.Build.Evaluation中设置的旧值。
根据错误信息:
未找到导入的项目“Files(x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”C:\“。
Microsoft.WebApplication.targets的导入路径不正确。
在项目文件.csproj中,我们注意到以下导入:
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />因此,MSBuildExtensionsPath32的值是Microsoft.Build.Evaluation中的C:\Program Files (x86)\MSBuild,这在Visual 2017中是不正确的。
Visual 2017的MSBuildExtensionsPath32值应该是:
安装了BuildTool:
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0安装了Visual:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0要解决此问题,您可以在项目文件中使用以下值:
<PropertyGroup>
<MSBuildExtensionsPath32>C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0</MSBuildExtensionsPath32>
</PropertyGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />有关更多细节,请参见类似问题。
希望这能有所帮助。
发布于 2019-06-06 16:52:53
https://stackoverflow.com/questions/48771116
复制相似问题