尽管构建路径正确,Visual Studio还是会因为构建路径而无法构建项目?

时间:2020-02-07 23:44:42

标签: c# visual-studio msbuild visual-studio-2019

我的Visual Studio 2019安装程序不会构建我刚刚编写的Web服务,并且说我对于这样的WebApplications的路径不正确:

C:\Users\rudiejd\source\repos\CrowdRecWeb\CrowdRecWeb\CrowdRecWeb.csproj(109,3): error MSB4019: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\WebApplications" was not found. Confirm that the expression in the Import declaration "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VisualStudio\v16.0\WebApplications" is correct, and that the file exists on disk.

这是我的.csproj中设置MSBuild路径的部分:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild</VSToolsPath> 
  </PropertyGroup>
  <Import Project="$(VSToolsPath)\Microsoft\VisualStudio\v16.0\WebApplications" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

这是什么问题?

1 个答案:

答案 0 :(得分:0)

这是什么问题?

csproj文件出问题了。就像上面评论的汉斯一样,您正在将目录传递到Import元素。

但是在 Msbuild 中,您应该将目标文件(path\xx.targets)传递到Import元素。像这样的简单示例:<Import Project="xxx.targets"/>。更多详细信息,请参阅this document

解决方案:

根据您的项目文件,正确的格式应为:

  <Import Project="$(VSToolsPath)\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
  <Import Project="$(MSBuildExtensionsPath32)Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

编辑项目文件后,重新加载项目并重建它。所有人都应该工作良好。

此外:

如果遇到找不到类似Microsoft.WebApplication.targets之类的错误,只需确保已安装与Web开发相关的工作负载:

enter image description here

希望它会有所帮助:)