TeamCity/MsBuildコマンドラインを介して展開しようとしている2つのプロジェクト(WCFC#サービスアプリとVB Web UI))を含むVS2012ソリューションがあります。各プロジェクトには公開プロファイルが含まれています-これを「テストプロファイル」と呼びましょう-IDEを使用して実行すると正常に機能します。
ただし、2つの連続するビルドステップとして実行すると、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の値は「TestProfile」に設定され、「C:\ BuildAgent\work\61493e349d61af8c\Yms.Web.Ui__profiles\Test Profile.pubxml」でファイルが見つかると予想されますが、見つかりませんでした。
各ビルドステップは、MsBuild v4.0、Run Platform x64、ToolsVersion4.0を使用するようにセットアップされています。コマンドラインパラメータは次のとおりです。
/ P:Configuration = "テストプロファイル"
/p:DeployOnBuild = true/p:PublishProfile = "テストプロファイル"
/p:VisualStudioVersion = 11.0/p:Password = james2
プロジェクトではなくソリューションに対して単一のビルドステップとして実行すると、エラーメッセージの「Ui_profiles」が「PublishProfiles」に置き換えられることを除いて、同じエラーが発生します。
どんな助けでも大歓迎です、これは私をバティに駆り立てています
まったく同じ問題が発生しましたが、VS2010 Webアプリケーションプロジェクト(公開オプションを更新するためのAzure SDK 1.8アップデートを使用)の場合です。 MSによって提供されたWeb公開ターゲットは、公開プロファイルのパスを正しく評価しないように見えました。
私は2つの重要なことをすることになりました:
私のMSBuildコマンドパラメータは次のようになりました。
/ P:DeployOnBuild = true
/P:PublishProfile = [マイプロファイルの名前(ファイル拡張子なし)]
/P:PublishProfileRootFolder = "%teamcity.build.checkoutDir%\ Source\Web Application\My Project\PublishProfiles"(公開プロファイルが保存されている場所)
/P:AllowUntrustedCertificate = true
/P:Password =%env.DomainPassword%
これが同じボートの誰かに役立つことを願っています!
Matt Woodwardによって提供された答えは、私を解決策に近づけましたが、1つの重要なステップが欠けていました。具体的には、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)\MyProjectPath\Properties\PublishProfiles</PublishProfileRootFolder>
</PropertyGroup>
今日、同様の問題に遭遇しました。私の場合、それは「パスが長すぎる」問題でした。公開プロファイルの名前を短くすると、Webデプロイパッケージが問題なくビルドされました。
APIWebプロジェクトでこの問題が発生しました。私の場合、解決策は、プロパティPublishProfileを使用したのと同じ方法でプロパティWebPublishProfileFileを追加することでした。その後、このエラーメッセージは消えました。
"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