TeamCity 9.x - 构建错误无法找到有效的AspnetMergePath

时间:2016-09-09 20:16:21

标签: asp.net visual-studio msbuild teamcity

我现在正在为所有项目使用VS 2015,但这个特定的Web应用程序正在使用Web表单。应该没什么大不了的,因为我可以在我的工作站上本地发布到测试服务器而没有问题。

之前我已经设置了TeamCity,但现在看来我在配置新实例时遇到了麻烦。使用TeamCity 9.1.5(内部版本37377),但服务器上没有Visual Studio。

代码位于使用Visual Studio 2015创建的解决方案中。

与这些例子相似 http://www.danmusk.com/how-to-build-asp-net-applications-in-teamcity-with-msbuild-tools-2013-and-net-framework-4-5-sdk/

在服务器上安装了MSBuild 2015 tools

运行构建后,我明白了:

Microsoft.Web.Publishing.AspNetCompileMerge.targets(132, 5): Can't find the valid AspnetMergePath

我的构建步骤如下所示 enter image description here

[更新]
我想我可能找到了罪魁祸首 - 我查看了安装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>

1 个答案:

答案 0 :(得分:1)

请参阅原始帖子中的更新。我试图构建的服务器上有非常小的旧SDK。我抓住了最新的Windows 10 SDK,安装并更新了Microsoft.Web.Publishing.AspNetCompileMerge.targets文件,如上所示。然后重新启动了两个TeamCity服务,构建终于工作了。