MsBuild not finding publish profile
I have a VS 2012 solution that contains two projects (WCF C# Service App and a VB Web UI) that I'm trying to deploy via TeamCity/MsBuild command line. Each project contains a publish profile - let's call it "Test Profile" - that works fine when executed from withing the IDE.
However, when executed as two consecutive build steps, the C# project deploys fine, but the VB project fails with the following error:
[09:27:05][ValidatePublishProfileSettings] GetPublishingLocalizedString [09:27:05][GetPublishingLocalizedString] C:Program Files (x86)MSBuildMicrosoftVisualStudiov11.0WebMicrosoft.Web.Publishing.targets(4435, 5): The value for PublishProfile is set to 'Test Profile', expected to find the file at 'C:BuildAgentwork61493e349d61af8cYms.Web.Ui__profilesTest Profile.pubxml' but it could not be found.
Each build step is setup to use MsBuild v4.0, Run Platform x64, ToolsVersion 4.0. The command line parameters are:
/P:Configuration="Test Profile"
/p:DeployOnBuild=true /p:PublishProfile="Test Profile"
/p:VisualStudioVersion=11.0 /p:Password=james2
When run as a single build step against the solution rather than projects, I get the same error, except "Ui_profiles" in the error message is replaced with "PublishProfiles".
Any help at all is much appreciated, this is driving me batty
I had exactly the same issue but for a VS2010 Web Application project (with the Azure SDK 1.8 update to update the publishing options). It seemed as if the Web Publishing Targets provided by MS wouldnt evaluate the path for the Publish Profiles correctly.
I ended up doing two key things:
My MSBuild command parameters looked as follows:
/P:DeployOnBuild=true
/P:PublishProfile=[Name of My Profile (without a file extension)]
/P:PublishProfileRootFolder="%teamcity.build.checkoutDir%SourceWeb ApplicationMy ProjectPublishProfiles" (where your publish profiles are stored)
/P:AllowUntrustedCertificate=true
/P:Password=%env.DomainPassword%
Hope this helps somebody in the same boat!
The answer supplied by Matt Woodward got me closer to the solution but one critical step was missing for me. Specifically, I needed to specify the publishProfileRootFolder property for the MSBuild task as follows:
<Target Name="Publish">
<MSBuild Targets="Build" Projects="$(SolutionDir)$(ProjectFile)"
Properties="DeployOnBuild=true;publishProfile=UAT;publishProfileRootFolder=$(PublishProfileRootFolder);publishUrl=$(PublishUrl)" />
</Target>
I also chose to embed the value for $(PublishProfileRootFolder) in the MSBuild project file directly as opposed to passing it as a command line parameter:
<PropertyGroup>
<PublishProfileRootFolder>$(MSBuildProjectDirectory)MyProjectPathPropertiesPublishProfiles</PublishProfileRootFolder>
</PropertyGroup>
Ran into a similar problem today. In my case it was a 'path too long' issue. When I shortened the name of the publish profile, the web deploy package was built without a problem.
链接地址: http://www.djcxy.com/p/81644.html上一篇: MSBuild命令行与Visual Studio发布
下一篇: MsBuild找不到发布配置文件