首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能在Microsoft.Build.Evaluation中使用VS2017

不能在Microsoft.Build.Evaluation中使用VS2017
EN

Stack Overflow用户
提问于 2018-02-13 16:15:56
回答 3查看 1.5K关注 0票数 1

我使用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’

这是我的代码:

代码语言:javascript
复制
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

EN

回答 3

Stack Overflow用户

发布于 2020-08-25 15:26:27

Mac操作系统-

我通过安装Mono的最新版本来解决这个问题。

  1. 在macOS上安装Mono。
  2. 在设置中搜索"omnisharp“(命令+ ',')。
  3. 更改设置Omnisharp:使用Global the
  4. 重新加载vscode。
票数 2
EN

Stack Overflow用户

发布于 2018-02-14 04:48:48

不能在Microsoft.Build.Evaluation中使用VS2017

似乎是MSBuildExtensionsPath32Microsoft.Build.Evaluation中设置的旧值。

根据错误信息:

未找到导入的项目“Files(x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”C:\“。

Microsoft.WebApplication.targets的导入路径不正确。

在项目文件.csproj中,我们注意到以下导入:

代码语言:javascript
复制
  <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:

代码语言:javascript
复制
C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0

安装了Visual:

代码语言:javascript
复制
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0

要解决此问题,您可以在项目文件中使用以下值:

代码语言:javascript
复制
<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" />

有关更多细节,请参见类似问题

希望这能有所帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 16:52:53

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48771116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档