19

VisualStudio2012と公開機能を使用しています。アプリケーションを開発サーバーにデプロイする公開プロファイルを作成しました。これは、マシンでvs2012から実行するとうまく機能します。これが私の問題です。開発サーバーにはTeamCityもインストールされており、ビルドの完了後に公開をトリガーしたいと思います。そこで、次のような簡単なビルドステップを作成しました。

Build file path: .\src\Solution.sln
Targets: Rebuild
Command line parameters: /p:DeployOnBuild=true;PublishProfile=Ci

このステップを実行すると、次のエラーが発生します。

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Web\Microsoft.Web.Publishing.targets(4377, 5): error ERROR_USER_NOT_ADMIN: Web deployment task failed. 
(Connected to 'dev.domain.com' using the Web Deployment Agent Service, but could not authorize. Make sure you are an administrator on 'dev.domain.com'. 

Ciプロファイルには、自分のマシンでVisualStudioからパブリッシングを実行するときに機能するユーザー名とパスワードが含まれています。ビルドステップでパラメーターとしてユーザー名とパスワードを渡そうとしましたが、同じ結果が得られます。これを機能させるには、管理者アカウントでTeamCityサービスを実行する必要がありますか?すべての提案をいただければ幸いです。

4

1 に答える 1

12

これについてはhttp://sedodream.com/2013/01/06/CommandLineWebProjectPublishing.aspxでブログを書いています。

あなたはかなり近づいています。うまくいけば、ギャップを埋めることができます。

ユーザー名とパスワードが VS パブリッシュ ダイアログで指定されていることは正しいですが、パスワードは .pubxml ファイルに保存されません。現在、.pubxml.user ファイルに保存されており、そのファイルはコマンド ライン シナリオではまったく使用されていません。そのため、プロパティを渡す必要があります。だからあなたの場合はそうあるべきです

msbuild .\src\solution.sln /p:DeployOnBuild=true /p:PublishProfile=ci /p:Password=<insert-password>

Web サーバーに信頼できる証明書がない場合は、/p:AllowUntrustedCertificate=true.

あなたの問題に直接関係しないかもしれないが、後でこれを見るかもしれない他の人にとって役立つかもしれない小さな追加。.csproj/.vbproj ファイルをビルドしている場合 (および .sln ファイルが使用されるいくつかのシナリオで潜在的に)、プロパティを渡す必要があります/p:VisualStudioVersion=11.0。詳細については、私のブログhttp://sedodream.com/2012/08/19/VisualStudioProjectCompatabilityAndVisualStudioVersion.aspxを参照してください。

于 2013-01-06T03:05:01.740 に答える