MsBuild找不到发布配置文件

时间:2013-07-24 16:42:47

标签: visual-studio visual-studio-2012 msbuild teamcity

我有一个VS 2012解决方案,其中包含两个项目(WCF C#Service App和一个VB Web UI),我正在尝试通过TeamCity / MsBuild命令行进行部署。每个项目都包含一个发布配置文件 - 让我们称之为“测试配置文件” - 在使用IDE执行时可以正常工作。

但是,当作为两个连续的构建步骤执行时,C#项目部署正常,但VB项目失败并出现以下错误:

  

[9时27分05秒] [ValidatePublishProfileSettings]   GetPublishingLocalizedString [09:27:05] [GetPublishingLocalizedString]   C:\ Program Files   (86)\的MSBuild \微软\ VisualStudio的\ 11.0 \网络\ Microsoft.Web.Publishing.targets(4435,   5):PublishProfile的值设置为'Test Profile',预期为   找到该文件   “C:\ BuildAgent \工作\ 61493e349d61af8c \ Yms.Web.Ui__profiles \测试   Profile.pubxml'但无法找到。

每个构建步骤都设置为使用MsBuild v4.0,Run Platform x64,ToolsVersion 4.0。命令行参数是:

  

/ P:配置=“测试配置文件”
  / P:DeployOnBuild =真   / p:PublishProfile =“测试档案”
  /p:VisualStudioVersion=11.0   / P:密码= james2

当针对解决方案而不是项目作为单个构建步骤运行时,我得到相同的错误,除了错误消息中的“Ui_profiles”被替换为“PublishProfiles”。

任何帮助都非常感谢,这让我感到很伤心

4 个答案:

答案 0 :(得分:22)

我有一个完全相同的问题,但对于VS2010 Web应用程序项目(使用Azure SDK 1.8更新来更新发布选项)。似乎MS提供的Web发布目标无法正确评估发布配置文件的路径。

我最终做了两件关键事情:

  • 在构建服务器上安装Azure SDK(1.8)(否则忽略发布配置文件)
  • 强制Teamcity构建配置中的“PublishProfileRootFolder”参数(否则,它使用MS Web发布目标提供的错误路径)

我的MSBuild命令参数如下所示:

/ P:DeployOnBuild =真
/ P:PublishProfile = [我的个人资料的名称(没有文件扩展名)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir%\Source\Web Application \ My Project \ PublishProfiles“(存储您的发布配置文件)
/ P:AllowUntrustedCertificate =真
/P:Password=%env.DomainPassword%

希望这可以帮助同一条船上的人!

答案 1 :(得分:2)

Matt Woodward提供的答案让我更接近解决方案,但我缺少一个关键步骤。具体来说,我需要为MSBuild任务指定 publishProfileRootFolder 属性,如下所示:

<Target Name="Publish">
    <MSBuild Targets="Build" Projects="$(SolutionDir)\$(ProjectFile)"
    Properties="DeployOnBuild=true;publishProfile=UAT;publishProfileRootFolder=$(PublishProfileRootFolder);publishUrl=$(PublishUrl)" />
</Target>

我还选择直接在MSBuild项目文件中嵌入$(PublishProfileRootFolder)的值,而不是将其作为命令行参数传递:

<PropertyGroup>
    <PublishProfileRootFolder>$(MSBuildProjectDirectory)\MyProjectPath\Properties\PublishProfiles</PublishProfileRootFolder>
</PropertyGroup>

答案 2 :(得分:2)

今天遇到类似的问题。就我而言,这是一个“路径太长”的问题。 当我缩短发布配置文件的名称时,Web部署包的构建没有问题。

答案 3 :(得分:0)

我在API网站项目中遇到了这个问题。在我的情况下,解决方案是添加属性:WebPublishProfileFile与我使用属性的方式相同:PublishProfile。然后这个错误信息消失了。

"c:\Windows\Microsoft.Net\Framework64\v4.0.30319\MSBuild.exe" C:\Projects\WebApp\WebAPIProject.csproj /p:DeployOnBuild=true /p:PublishProfile="C:\Projects\Publishes\WebAppPublishProfile.pubxml "/p:WebPublishProfileFile=C:\Projects\Publishes\WebAppPublishProfile.pubxml
相关问题