我的项目无法构建,因为它无法在 Azure DevOps 上达到
Microsoft.Web.Publishing.targets
我们在 Prem 上的
VStoolsPath
是 'C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0'
,使用 '\Web\Microsoft.WebSite.Publishing.targets'
就能够构建。
我想知道我们如何找出
VStoolsPath
的 AzureDevOps
是什么?我们如何找到相同/相似的路径来到达Microsoft.WebSite.Publishing.targets
以允许我们构建我们的代码?
我们的csproj文件配置如下:
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props"
Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets"
Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets"
Condition="false" />
这是我收到的错误:
src\Automation.Agent\Automation.Agent.csproj(4,11):错误 MSB4226: 找不到导入的项目“$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets”。
此外,尝试在 $(VSToolsPath) 的后备搜索路径中查找“$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets” - “C:\Program Files (x86)\MSBuild\Microsoft\ VisualStudio 15.0" .
这些搜索路径在“C:\Program Files (x86)\Microsoft Visual Studio�7\Enterprise\MSBuild .0 in\msbuild.exe.Config”。确认声明中的路径正确,并且该文件存在于磁盘上的搜索路径之一中。 进程“msbuild.exe”退出,代码为“1”。
哎呀,发现我使用了错误的代理来构建。
必须转到代理管道 - Azure Pipeline,然后将代理规范设置为“vs2015-win2012r2”
我已经在我的 .csproj 文件中添加了这些行,它对我有用。
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">16.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v16.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />