私の開発用ラップトップには VS2012 RC のみがインストールされており、新しい MSDeploy .pubxml 配管 (DeployOnBuild および PublishProfile 設定) に PowerShell から (psake 経由で) フックして、Web サイトをテスト サーバーにデプロイすることに成功しています。
ただし、私のビルド サーバーには最初に VS2010 SP1 がインストールされており、現在は 2012 RC を追加でインストールしています (このマシンにはまだ .NET 4 である他のビルドがあります)。
まったく同じパラメーターで同じスクリプトを実行すると、開発マシンとビルド サーバーの間で異なる結果が表示されます。私が実行しているコマンドは
exec { msbuild "Website\WebSite.csproj" /m p:DeployOnBuild=True /p:PublishProfile=MyTestProfile }
ビルド サーバーでは、これは実際には MSDeploy をトリガーするのではなく、単にサイトを圧縮して展開パッケージを作成するパッケージング ビットをトリガーします。私のマシンは pubxml ファイルを正常に取得し、デプロイを成功させました。
最終的に、問題を Microsoft.Web.Publishing.targets ファイルに突き止めたと思います。私の開発マシンでは、
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web
しかし、サーバーにはさらに
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Web
そして、このファイル(.pubxmlに関する知識なし)がそこで使用されているようです。
msbuild に v11.0 バージョンのファイルを取得させ、したがって、私の .pubxml ファイルを使用しますか?