MsBuild找不到发布配置文件
我有一个包含两个项目(WCF C#服务应用程序和一个VB Web UI)的VS 2012解决方案,我试图通过TeamCity / MsBuild命令行进行部署。 每个项目都包含一个发布配置文件 - 我们称之为“测试配置文件” - 在使用IDE执行时可以正常工作。
但是,当作为两个连续的构建步骤执行时,C#项目部署得很好,但VB项目失败并出现以下错误:
[09:27:05] [ValidatePublishProfileSettings] GetPublishingLocalizedString [09:27:05] [GetPublishingLocalizedString] C: Program Files(x86) MSBuild Microsoft VisualStudio v11.0 Web Microsoft.Web.Publishing.targets( 4435,5):PublishProfile的值设置为'Test Profile',预计会在'C: BuildAgent work 61493e349d61af8c Yms.Web.Ui__profiles Test Profile.pubxml'中找到该文件,但无法找到。
每个生成步骤都设置为使用MsBuild v4.0,运行平台x64,ToolsVersion 4.0。 命令行参数是:
/ P:配置=“测试配置文件”
/ p:DeployOnBuild = true / p:PublishProfile =“测试配置文件”
/p:VisualStudioVersion=11.0 / p:Password = james2
当针对解决方案而不是项目作为单个构建步骤运行时,我会得到相同的错误,但将错误消息中的“Ui_profiles”替换为“PublishProfiles”。
任何帮助都是非常感谢,这是驾驶我的屁股
我有完全相同的问题,但对于VS2010 Web应用程序项目(使用Azure SDK 1.8更新来更新发布选项)。 看起来好像MS提供的Web发布目标不会正确评估发布配置文件的路径。
我最终做了两件关键的事情:
我的MSBuild命令参数如下所示:
/ P:DeployOnBuild =真
/ P:PublishProfile = [我的个人资料的名称(没有文件扩展名)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir%SourceWeb Application My Project PublishProfiles“(您的发布配置文件的存储位置)
/ P:AllowUntrustedCertificate =真
/P:Password=%env.DomainPassword%
希望这可以帮助有人在同一条船上!
马特伍德沃德提供的答案让我更接近解决方案,但对我来说却缺少一个关键步骤。 特别是,我需要为MSBuild任务指定publishProfileRootFolder属性,如下所示:
<Target Name="Publish">
<MSBuild Targets="Build" Projects="$(SolutionDir)$(ProjectFile)"
Properties="DeployOnBuild=true;publishProfile=UAT;publishProfileRootFolder=$(PublishProfileRootFolder);publishUrl=$(PublishUrl)" />
</Target>
我还选择将$(PublishProfileRootFolder)的值直接嵌入到MSBuild项目文件中,而不是将其作为命令行参数传递:
<PropertyGroup>
<PublishProfileRootFolder>$(MSBuildProjectDirectory)MyProjectPathPropertiesPublishProfiles</PublishProfileRootFolder>
</PropertyGroup>
今天遇到类似的问题。 就我而言,这是一个'路径太长'的问题。 当我缩短发布配置文件的名称时,构建web部署包时没有问题。
链接地址: http://www.djcxy.com/p/81643.html