TeamCity WindowsAzure.targets导致部署错误

时间:2017-01-26 19:43:27

标签: azure angular msbuild teamcity

我们目前正在尝试设置一个Angular 2项目,该项目在其解决方案中也包含一个Cloud Service项目。我们已经建立了许多包含Cloud Service项目的Angular 1项目,并且没有任何错误。尝试为Angular 2项目运行MSBuild步骤时,我们在TeamCity构建服务器上收到以下错误:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools\2.7\Microsoft.WindowsAzure.targets(2787, 5): error MSB3021: Unable to copy file "C:\TeamCityBuildAgent\temp\buildTmp\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs" to "C:\SourceControlFolder\Apps\MyApp\MyApp.CloudDeployment\obj\Debug\Website\C:\TeamCityBuildAgent\temp\buildTmp\.NETFramework,Version=v4.6.1.AssemblyAttributes.cs". The given path's format is not supported.

主要问题似乎是构建试图将完整的C:\TeamCityBuildAgent..路径放入obj\Debug\Website文件夹。

我当前的MSBuild参数是: /p:Configuration="Dev" /p:platform="Any CPU" /p:OctoPackEnforceAddingFiles=true /p:OctoPackProjectName=MyApp_Dev

我尝试过以下解决方案:

  1. 确保安装了最新的Visual Studio更新(对于MSBuild)
  2. 运行安装工具以修复构建服务器上的Azure Tools 2.7。
  3. 更改构建中的调试配置。
  4. 确保构建服务器上安装了TypeScript 1.7.6(即使它是Azure.targets问题)[https://github.com/Microsoft/TypeScript/issues/6215]
  5. 将项目更新为Azure Tools 2.9。除了现在在2.9文件夹上失败之外,同样的错误仍然存​​在。
  6. 如果有其他人遇到此错误并且知道修复,那就很好奇。在我尝试其他解决方案时,我会更新此帖子。

    更新

    似乎导致此问题的原因是.csproj文件中的这一行: <FilesToIncludeForPublish>AllFilesInProjectFolder</FilesToIncludeForPublish> 这是为我们的构建配置指定的,用于将ng构建生成的所有文件复制到发布的输出目录。我现在不明白的是,这对所有开发者来说是如何运作的。本地计算机但在我们的构建服务器上不起作用。当我发现更多信息或任何类型的解决方法时,会保留此信息。

1 个答案:

答案 0 :(得分:1)

这最终成了修复:

我们没有在MSBuild中定位.sln,而是专门针对.csproj文件。这修复了构建错误,并允许我们将FilesToIncludeForPublish标记保留在其中。