4

私のローカル マシンから開発サーバーまで、Web Deploy 3.0 は次のコマンドを使用して Visual Studio 2012 発行プロファイルで正常に動作します。

msbuild .\myproj.csproj /verbosity:d /p:DeployOnBuild=true;PublishProfile=Develop;VisualStudioVersion=11.0;AllowUntrustedCertificate=true;ユーザー名=xx;パスワード=xx

この同じコマンドを CI サーバー (Jenkins の場合もありますが、これはすべてに適用されます) から実行すると、コマンドは正常に終了しますが、Web サイトはデプロイされません。

ログ出力を比較すると、ビルド サーバーによって大きなセクションがスキップされているように見えます。以下にリストされている 2 行の直後に発生しています (これらの 2 行の出力は、ローカルまたは CI サーバーで実行している場合と同じです)。

プロジェクト「C:_Application\proj\src\proj.Web\proj.Web.csproj」のファイル「C:\windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets」のターゲット「PrepareForRun」(ターゲット "CoreBuild" はそれに依存します): プロジェクト "proj.Web.csproj" 内のターゲット "PrepareForRun" のビルドが完了しました。

ローカルで実行している場合、これに続いて以下に示す内容が表示されます (さらに数百行のログが追加されます)。

false 条件のため、ターゲット "InsertAdditionalWebCofigConnectionStrings" はスキップされました。($(InsertAdditionalWebCofigConnectionStrings) And '@(_ConnectionStringsToInsert)' != '') は (True And '' != '') として評価されました。プロジェクト「C:_Application\proj\src\proj.Web」のファイル「C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets」のターゲット「_CleanWPPIfNeedTo」 \proj.Web.csproj" (ターゲット "PipelineCollectFilesPhase" はそれに依存します): タスク "ReadLinesFromFile"

CI サーバーでは、次のディレクトリが見つからないようです。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets

ターゲットが見つからないと、黙って失敗しますか? このフォルダーはどこから来たのですか (CI サーバー上の Web フォルダー全体がありません)?

4

1 に答える 1

4

ビルド サーバーに Visual Studio をインストールしましたか? 最初は奇妙なことのように思えます (厳密には必要ではありません) が、これらすべての問題を解決する最も簡単な方法であることは間違いありません。

必要なターゲット ファイルを PC からビルド サーバーに手動でコピーできますが、それを機能させるには試行錯誤が必要です。

out of bandまた、MS が最近のように新しい更新プログラムをリリースした場合Asp.Net and Web Tool 2012.2、どのターゲットが変更されたかを調べて手動でコピーするよりも、ビルド サーバーのインストール手順がはるかに簡単になります。

これが役立つかどうか教えてください。

于 2013-03-21T09:04:48.940 に答える