我现在正在为所有项目使用VS 2015,但这个特定的Web应用程序正在使用Web表单。应该没什么大不了的,因为我可以在我的工作站上本地发布到测试服务器而没有问题。
之前我已经设置了TeamCity,但现在看来我在配置新实例时遇到了麻烦。使用TeamCity 9.1.5(内部版本37377),但服务器上没有Visual Studio。
代码位于使用Visual Studio 2015创建的解决方案中。
在服务器上安装了MSBuild 2015 tools
运行构建后,我明白了:
Microsoft.Web.Publishing.AspNetCompileMerge.targets(132, 5): Can't find the valid AspnetMergePath
[更新]
我想我可能找到了罪魁祸首 - 我查看了安装Windows SDK的位置,而且非常稀疏。 aspnetmerge工具无处可寻。哎呀,这可能就是我收到错误的原因了?
[更新]
从命令行使用msbuild,我得到了 Microsoft.Web.Publishing.AspNetCompileMerge.targets(133,5):错误:找不到有效的AspnetMergePath
此外,自从开始这个步骤,我安装了Windows 10 SDK。我的TeamCity构建配置现在可以使用了。我用这个更新了我的Microsoft.Web.Publishing.AspNetCompileMerge.targets文件:
<Target
Name="GetAspNetMergePath"
DependsOnTargets="$(GetAspNetMergePathDependsOn)"
Condition ="'$(GetAspNetMergePath)' != 'false'">
<PropertyGroup>
<TargetFrameworkSDKToolsDirectory>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\</TargetFrameworkSDKToolsDirectory>
<AspnetMergeName>aspnet_merge.exe</AspnetMergeName>
<AspnetMergePath Condition="Exists('$(TargetFrameworkSDKToolsDirectory)$(AspnetMergeName)')">$(TargetFrameworkSDKToolsDirectory)</AspnetMergePath>
</PropertyGroup>
<Error Condition="'$(AspnetMergePath)' == '' Or !Exists($(AspnetMergePath))"
Text="Can't find the valid AspnetMergePath" />
</Target>
答案 0 :(得分:1)
请参阅原始帖子中的更新。我试图构建的服务器上有非常小的旧SDK。我抓住了最新的Windows 10 SDK,安装并更新了Microsoft.Web.Publishing.AspNetCompileMerge.targets文件,如上所示。然后重新启动了两个TeamCity服务,构建终于工作了。