Visual studio 缺少MSBuild 15 WebApplication.targets
我正在使用一个使用VS2015编写的web应用程序,并正在使用VS2017进行维护。我正在尝试编写另一个应用程序,使用MSBuild API和其他工具在本地构建完整的web堆栈。在VS2015或VS2017中,ASP.NET Web应用程序项目将成功生成,但在以编程方式运行MSBuild时,我不断遇到以下错误: 找不到导入的项目“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets”。确认声明中的路径正确,并且文件存在于磁盘上 我的应用程序中安装了以下生成包:Visual studio 缺少MSBuild 15 WebApplication.targets,visual-studio,msbuild,Visual Studio,Msbuild,我正在使用一个使用VS2015编写的web应用程序,并正在使用VS2017进行维护。我正在尝试编写另一个应用程序,使用MSBuild API和其他工具在本地构建完整的web堆栈。在VS2015或VS2017中,ASP.NET Web应用程序项目将成功生成,但在以编程方式运行MSBuild时,我不断遇到以下错误: 找不到导入的项目“C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft
- Microsoft.Build
- Microsoft.Build.Framework
- Microsoft.Build.Tasks.Core
- Microsoft.Build.Utilities.Core
toolsVersion
参数,我已尝试手动将其设置为14.0
,但我的应用程序似乎仍在尝试使用MSBuild 15。(我确实安装了MSBuild 14。)
问题:
- 我是否可以使此生成以编程方式在MSBuild 14中运行,而不更新任何
文件csproj
- 在哪里可以获取MSBuild 15的
WebApplication.targets
解决方案: 在很大程度上要感谢@Leo MSFT,我才能够完成这项工作。以下是方法:
BuildRequestData
实例中,以使MSBuild在v15使用的文件夹中查找,而不是在v14使用的文件夹中查找
[“MSBuildExtensionsPath32”]=
“C:\ProgramFiles(x86)\Microsoft Visual Studio\2017\Professional\MSBuild”
MSBuildExtensionsPath32
由MSBuild在内部设置。如果不想更新.csproj文件,可以尝试覆盖项目文件中的值:
<PropertyGroup>
<MSBuildExtensionsPath32>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild</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" />
我知道这是目标应该走的道路,但我没有目标。我看到的一般说明是安装Visual Studio,但我认为这不适用于2017版。@JamesFaix,因为您安装了Visual Studio 2017,但没有该目标,您还应该通过安装程序安装工作负载
ASP.NET和web开发
。@JamesFaix,在通过安装程序安装ASP.NET和web development工作负载之后,这个问题如何?我刚刚打开安装程序,我已经有了这个工作负载。我将尝试删除它并重新添加。实际上我说得太快了,目标文件现在位于上面提到的目录中(ProgramFiles(x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\15.0\WebApplications
),但MSBuild正在C:\ProgramFiles(x86)中查找该文件\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
使用vs_buildtools\uuuuxxx.exe GUI安装程序使用上述建议为我修复了它。我遇到了以下错误“error MSB4057:项目中不存在目标“Package”。@JamesFaix情况如何?我正在使用Jenkins调用MSBuild v15。不完全理解将[“MSBuildExtensionsPath32”]
属性放置在何处?
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications