MSBuild 发布转换路径

Posted

技术标签:

【中文标题】MSBuild 发布转换路径【英文标题】:MSBuild Publish Transform Path 【发布时间】:2016-09-06 16:03:32 【问题描述】:

我正在通过 Jenkins 中的 MSBuild 构建一个 C# 项目。一切都正确编译,但是当我到达要发布的部分时,出现以下错误:

PreTransformWebConfig:
Found The following for Config tranformation:
Web.config, bin\Web.config, bin\Web.config
Creating directory "E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\obj\x86\Release\TransformWebConfig\transformed\".
Creating directory "E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\obj\x86\Release\TransformWebConfig\transformed\Views\".
Creating directory "E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\obj\x86\Release\TransformWebConfig\transformed\bin\".
Copying Web.config to obj\x86\Release\TransformWebConfig\original\Web.config.
Copying E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\server\VisualizationManagerWebService\Web.config to obj\x86\Release\TransformWebConfig\original\bin\Web.config.
Copying E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\Web.config to obj\x86\Release\TransformWebConfig\original\bin\Web.config.
Copying E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\Web.Release.config to obj\x86\Release\TransformWebConfig\assist\Web.config.
Copying E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\bin\Web.Release.config to obj\x86\Release\TransformWebConfig\assist\bin\Web.config.
Skip copying E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\bin\Web.Release.config to obj\x86\Release\TransformWebConfig\assist\bin\Web.config, File obj\x86\Release\TransformWebConfig\assist\bin\Web.config is up to date
TransformWebConfigCore:
 Transforming Source File:     E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\server\VisualizationManagerWebService\Web.config;E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\Web.config
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Microsoft.Web.Publishing.targets(1475,5): error : Could not open Source file: The given path's format is not supported. [E:\Jenkins\jobs\FB20HMISupporting\workspace\net\core\surface\SurfaceVisualizationManager\SurfaceVisualizationManager.csproj]
 Transformation failed

我已经尝试了所有我能想到的来找到这个目标的定义位置。我相信格式问题是它试图调用由分号分隔的 2 个路径。一个来自构建顺序中的前一个项目。谁能告诉我这是在 Visual Studio 中的何处定义的?

【问题讨论】:

另外,它似乎在 Visual Studio 中构建得很好,它只是在我尝试通过 MSBuild 使用 Jenkins 时发生。这 2 个转换甚至不会出现在 Visual Studio 的输出中。 【参考方案1】:

如果有人感兴趣。这是一个构建顺序问题。在构建中删除对第二个项目的依赖后,它工作正常。

【讨论】:

以上是关于MSBuild 发布转换路径的主要内容,如果未能解决你的问题,请参考以下文章

MSBuild 的路径

给定相对路径时,如何让 MSBUILD 评估和打印完整路径?

MSBuild Script 和 VS2010 发布应用 Web.config 转换

Jenkins配置MSBuild实现自动部署(MSBuild+SVN/Subversion+FTP+BAT)

使用 MSBuild 构建后运行测试时出现 MissingManifestResourceException(.mresource 在清单中有路径)

Ionic / Cordova Windows 构建拾取不正确的 MSBUILD 路径