MSBUILDでTFS2010にMSDEPLOYを実行させるにはどうしたらいいですか?
質問
優れたPDCの講演があります はこちら Vishal Joshi による、Visual Studio 2010 の新しい MSDEPLOY 機能と、TFS 内でアプリケーションをデプロイする方法について説明されています。(以下の素晴らしい講演もあります。 Scott Hanselman の素晴らしい講演もありますが、彼は TFS については触れていません)。
TFS2010 内で MSBUILD を使用して MSDEPLOY にコールスルーし、パッケージを IIS にデプロイすることができます。これは、MSBUILD へのパラメーターによって行われます。
この講演では、.NET Framework のようなコマンドライン パラメータについて説明します。
/p:DeployOnBuild
/p:DeployTarget=MsDeployPublish
/p:CreatePackageOnPublish=True
/p:MSDeployPublishMethod=InProc
/p:MSDeployServiceURL=localhost
/p:DeployIISAppPath="Default Web Site"
しかし、このためのドキュメントはどこにあるのでしょうか。
私はこれを動作させようと一日中費やしてきましたが、なかなかうまくいかず、さまざまなエラーで終わり続けています。もし私がパッケージの
cmd
ファイルを実行すると、完全にデプロイされます。Visual Studio を通して WebDeploy を実行すると、それも完璧に機能します。
しかし、デプロイメント全体を
msbuild
を個別に呼び出すのではなく、これらの引数を使って
msdeploy
を実行したり、パッケージの
.cmd
ファイルを作成します。どうすればいいのでしょうか?
PS. はい、私は
Web Deployment Agent Service
を実行しています。また、IISの下で管理サービスも動かしています。両方使ってみました。
使っているアーギュメント:
/p:DeployOnBuild=True
/p:DeployTarget=MsDeployPublish
/p:Configuration=Release
/p:CreatePackageOnPublish=True
/p:DeployIisAppPath=staging.example.com
/p:MsDeployServiceUrl=https://staging.example.com:8172/msdeploy.axd
/p:AllowUntrustedCertificate=True
を与える。
C:\Program Files (x86)╱Microsoft.VisualStudio.v10.0WebMicrosoft.Web.Publishing.targets (2660): VsMsdeployに失敗しました(リモートエージェント(URL https://staging.example.com:8172/msdeploy.axd?site=staging.example.com )に連絡できませんでした。 ターゲットコンピュータにリモートエージェントサービスがインストールされ、起動していることを確認してください)。エラーの詳細 リモートエージェント(URL https://staging.example.com:8172/msdeploy.axd?site=staging.example.com )にコンタクトできませんでした。 ターゲットコンピュータにリモートエージェントサービスがインストールされ、起動されていることを確認してください。サポートされていないレスポンスを受信しました。応答ヘッダー 'MSDeploy.Response' は '' でしたが、'v1' が期待されていました。リモートサーバーはエラーを返しました:(401) Unauthorized。
どのように解決するのですか?
IIS7 +関連する回答....
OK - 以下は、私が最終的に行ったことです。多かれ少なかれ、次の投稿に従います。 サイモン・ウィーバー による投稿に従ったものです。
しかし、MSBuildの設定となると...ここではほとんどの人が以下の設定を使っています。
/p:MSDeployPublishMethod=RemoteAgent
で、これは
正しくない
になっています。この設定を使うと、TFSはそのurlに接続しようとします。
https://your-server-name/MSDEPLOYAGENTSERVICE
しかし、そのURLにアクセスするためには、認証するユーザがAdminである必要があります。Admin-overrideルールにチェックを入れておく必要があります)。このURLはIIS6用だと思います。
RemoteAgentを使用して接続しようとしたときの標準的なエラーメッセージは次のとおりです。
標準の 401 Frak Off u suck RemoteAgent、エラー
C:\Program Files (x86)\Microsoft.VisualStudio.v10.0Web (3588): Webデプロイメントタスク failed.(リモートエージェント (URL http://your-web-server/MSDEPLOYAGENTSERVICE ) にコンタクトできませんでした。 リモートエージェントサービスが リモートエージェントサービスがインストールされ 起動されていることを確認してください。) サイト名、ユーザー名 サイト名、ユーザー名、パスワードが正しいか確認してください。 パスワードが正しいことを確認します。問題が解決しない場合 解決しない場合は、ローカルまたはサーバーの管理者に連絡してください。 ローカル管理者またはサーバー管理者に連絡してください。エラー内容 の詳細をご覧ください。リモートエージェント(URL http://your-web-server/MSDEPLOYAGENTSERVICE ) に連絡できませんでした。 リモートエージェントサービスが リモートエージェントサービスがインストールされ ていることを確認してください。サポートされていない サポートされていない応答を受信しました。応答ヘッダーの レスポンスヘッダ 'MSDeploy.Response' は 'V1' でした。 が 'V1' であったが 'v1' が期待されていた。リモートサーバーが リモートサーバーがエラーを返した:(401) Unauthorizedです。
ということは......あなたの
MSDeployPublishMethod
をこのように変更する必要があります。
/p:MSDeployPublishMethod=WMSVC
は
WMSVC
は Windows Manager Service を表します。これは基本的にリモートエージェントの新しいラッパーですが、ユーザ名とパスワードを正しく提供できるようになりました...ユーザは管理者である必要はありません! (喜び!) つまり、Webサイトごとに、どのユーザーにアクセスさせるかを設定できるようになりました。
また、URLをヒットしようとするようになりました。
https://your-web-server:8172/MsDeploy.axd
これは、Visual Studio 2010 の
Publish
のウィンドウがそうです!
(OMG -> PENNY DROPS!!! BOOM!!)
そして、これが私の最終的なMSBuildの設定です。
/p:DeployOnBuild=True
/p:DeployTarget=MSDeployPublish
/p:MSDeployPublishMethod=WMSVC
/p:MsDeployServiceUrl=your-server-name
/p:DeployIISAppPath=name-of-the-website-in-iis7
/p:username=AppianMedia\some-domain-user
/p:password=JonSkeet<3<3<3
/p:AllowUntrustedCertificate=True
ユーザー名にドメイン名が入っているのに気づきましたか?これは必要です。また、私の絵では、私は管理のためにドメインユーザーにウェブサイトへのアクセスを許可しています。そのため、私が追加した新しいユーザーアカウント(TFSBuildService)には
Domain Users
グループへのメンバーシップを持っています...だから、それはすべてが動作する方法です。
さて、ここまで読んだら、笑いのツボを押さえてください(2007年版だから)......。
関連
-
[解決済み] この操作を完了するために十分なストレージがありません
-
[解決済み】NuGetパッケージをソリューションの2番目のプロジェクトにインストールするにはどうすればいいですか?
-
[解決済み] MsDeployが403 forbiddenを返してくる
-
[解決済み] VS 2010 テストランナー エラー "テスト実行中にエージェント プロセスが停止しました。"
-
[解決済み] Visual Studioで選択行のインデントを修正する方法
-
[解決済み] チェックイン履歴をすべて表示する TFS
-
[解決済み] Visual Studio TFSの変更待ちリストに未変更のファイルが表示される件
-
[解決済み] 暗いVisual Studioエディタで挿入マウスカーソルを見えるようにする
-
[解決済み] オンラインリソースに接続できない
-
ソースファイル 'PropertiesAssemblyInfo.cs' が見つかりませんでした。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] キーファイル 'blah.pfx' をインポートできない - エラー 'The keyfile may be password protected'.
-
[解決済み】IIS ExpressのWindows認証について
-
[解決済み] Visual Studio 2010 でクラスとメソッドを検索するショートカットは?
-
[解決済み] Visual Studio Productivity Power Toolsで作成した.sln.docstatesファイルとは何ですか?
-
[解決済み] レポート作成時に「レポートデータ」ウィンドウが表示されないのはなぜですか?
-
[解決済み] VS2010とIE10 iexplore.exeの処理にスクリプトデバッガをアタッチすることに失敗しました。
-
[解決済み] NuGetパッケージマネージャのアップデート時のエラー
-
[解決済み] チェックイン履歴をすべて表示する TFS
-
[解決済み] コンパイル時の「出力ウィンドウ」表示を無効にする
-
[解決済み] オンラインリソースに接続できない