web-dev-qa-db-ja.com

保存されたpublishProfileをWebDeployに使用するようにMSBuildを構成するにはどうすればよいですか?

Visual Studioを使用して発行プロファイルを作成しました。その情報は、プロジェクトディレクトリのルートにあるMyProject.Publish.xmlに保存されました。

CIサーバーで実行されるMSBuildタスクで、そのファイルを基本設定として使用します。理想的には、コマンドラインパラメーターを使用してプロパティをオーバーライドできれば、それは素晴らしいことです。

これは可能ですか?もしそうなら、構文は何ですか?

たとえば、私は次のようなものを探しています:

MSBuild MyProject.csproj /P:UsePublishProfile=True /P:UserName=deployUser /P:Password=MyPassword
32
Jim Geurts

VS2010が使用するpublish.xmlファイルがこのように使用するように設計されていなかったことをお詫び申し上げます。実際、他の人とチェックイン/共有するように設計されていませんでした。

これらのファイルの読み取り/書き込みのロジックは、Visual Studio内に厳密に含まれており、MSBuildでは使用できません。 したがって、今日これを行う簡単な方法はありません。msbuild.exeを呼び出すときに、個々のプロパティの名前/値を渡す必要があります。詳細については、 チームビルド:MSDeployを使用してローカルに公開する で私が回答した同様の質問を参照してください。

VS 11開発者プレビューに関する注意

ちょうどあなたが知っているように、私たちはこれをVisual Studioの次期バージョンで解決しました。 VS 11開発者プレビューをダウンロードすることで確認できます。これで、すべてのプロファイルが独自のファイルに保存されます(ソリューションエクスプローラーのプロパティノードのPublishProfilesの下)。現在は、チェックインしてチームメンバーと共有できるように設計されています。これらのファイルはMSBuildファイルになり、必要に応じてカスタマイズできます。コマンドラインから公開するには、DeployOnBuild = trueを渡して、PublishProfileをプロファイルの名前に設定します。例えば:

msbuild.exe MyProject.csproj /p:DeployOnBuild=true;PublishProfile=MyProfile
43