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发布目标不会正确评估发布配置文件的路径。

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

  • 在构建服务器上安装Azure SDK(1.8)(否则忽略发布配置文件)
  • 强制Teamcity构建配置中的“PublishProfileRootFolder”参数(否则,这将使用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

    上一篇: MsBuild not finding publish profile

    下一篇: Publish one web project from solution with msbuild