TeamCity WindowsAzure.targets 导致部署错误
TeamCity WindowsAzure.targets causing errors in deployment
我们目前正在尝试设置一个 Angular 2 项目,该项目的解决方案中还包含一个云服务项目。我们已经建立了许多 Angular 1 个包含云服务项目的项目,并且没有出现任何错误。当尝试 运行 Angular 2 项目的 MSBuild 步骤时,我们在 TeamCity 构建服务器上收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools.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
我尝试了以下解决方案:
- 确保安装了最新的 Visual Studio 更新(针对 MSBuild)
- 运行 修复构建服务器上的 Azure Tools 2.7 的安装工具。
- 正在更改构建中的调试配置。
- 确保在构建服务器上安装了 TypeScript 1.7.6(即使这是一个 Azure.targets 问题)[https://github.com/Microsoft/TypeScript/issues/6215]
- 将项目更新为 Azure Tools 2.9。除了现在在 2.9 文件夹上失败之外,仍然存在相同的错误。
想知道是否还有其他人遇到过此错误并知道修复方法。我会在尝试其他解决方案时保持此 post 更新。
更新
看来导致此问题的原因是 .csproj 文件中的这一行:
<FilesToIncludeForPublish>AllFilesInProjectFolder</FilesToIncludeForPublish>
这是为我们的构建配置指定的,用于将 ng 构建生成的所有文件复制到发布的输出目录。我目前不明白这是如何在所有开发人员的本地机器上工作的,但在我们的构建服务器上不起作用。当我找到更多信息或任何类型的解决方法时,将保留此 posted。
这最终成为解决方法:
我们没有针对 MSBuild 中的 .sln,而是专门针对 .csproj 文件。这修复了构建错误并允许我们将 FilesToIncludeForPublish
标签保留在里面。
我们目前正在尝试设置一个 Angular 2 项目,该项目的解决方案中还包含一个云服务项目。我们已经建立了许多 Angular 1 个包含云服务项目的项目,并且没有出现任何错误。当尝试 运行 Angular 2 项目的 MSBuild 步骤时,我们在 TeamCity 构建服务器上收到以下错误:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Windows Azure Tools.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
我尝试了以下解决方案:
- 确保安装了最新的 Visual Studio 更新(针对 MSBuild)
- 运行 修复构建服务器上的 Azure Tools 2.7 的安装工具。
- 正在更改构建中的调试配置。
- 确保在构建服务器上安装了 TypeScript 1.7.6(即使这是一个 Azure.targets 问题)[https://github.com/Microsoft/TypeScript/issues/6215]
- 将项目更新为 Azure Tools 2.9。除了现在在 2.9 文件夹上失败之外,仍然存在相同的错误。
想知道是否还有其他人遇到过此错误并知道修复方法。我会在尝试其他解决方案时保持此 post 更新。
更新
看来导致此问题的原因是 .csproj 文件中的这一行:
<FilesToIncludeForPublish>AllFilesInProjectFolder</FilesToIncludeForPublish>
这是为我们的构建配置指定的,用于将 ng 构建生成的所有文件复制到发布的输出目录。我目前不明白这是如何在所有开发人员的本地机器上工作的,但在我们的构建服务器上不起作用。当我找到更多信息或任何类型的解决方法时,将保留此 posted。
这最终成为解决方法:
我们没有针对 MSBuild 中的 .sln,而是专门针对 .csproj 文件。这修复了构建错误并允许我们将 FilesToIncludeForPublish
标签保留在里面。