問題タブ [msdeploy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
msbuild - ASP.NET 4 の展開 MSBUILD
Web 配置プロジェクトで VS2010 を使用して、Web アプリケーションのリリース パッケージを作成しています。WDP では、web.config を変換し、いくつかのディレクトリを作成し、いくつかのファイルを削除するなど、いくつかのビルド タスクを作成しました。
今、私は Web アプリケーションを ASP.NET 4 に移行し、パッケージ/発行と呼ばれる VS2010 のこの機能を見てきました。この機能を使用して、WDP のようにカスタム MSBUILD タスクを追加することはできますか?
デフォルトのVS2010セットアップで同じことが可能であれば、WDPプラグインを取り除きたいです。
visual-studio-2010 - Web展開:プロジェクト構成名に応じてディレクトリを除外します
MsDeployを使用してリリースするビルドに応じて、一部のイメージリソースを削除したいと思います。基本的に別のテーマである異なるクライアント用の3つのビルドがあり、環境を正しくセットアップするための多くの構成変換があります。
client2にデプロイするときに、client1のイメージリソースを含めたくありません。
これを参照として使用して、msdeployをカスタマイズするための最初のつまずきの手順を実行しました。これは正常に機能しますが、構成名を取得するための変数がわかりません。
すべてを除外して、必要なものだけを含めることも可能でしょうか?
.net - 複数の環境でのMsBuildとMsDeploy
ソリューション構成を環境にマッピングし、環境ごとのパッケージ化にMsDeployを使用するための適切なパターンはありますか?
最短バージョン:このファイルを取得し、パッケージが作成されるように.msbuildファイルを変更してみてください。
詳細
多数のライブラリとASP.NETMVCアプリケーションを使用したソリューションがあります。メインソリューションを呼び出してから他のことを行うmsbuildファイルを使用してビルドを駆動します。新しいmsdeployパッケージを使用して、後で配布するために.zipファイルを準備したいのですが、さまざまな問題が発生しています。
私のソリューションには、マップする環境に一致する、、、、およびの4つLocal
の構成があります。そのソリューションでは、すべてのライブラリに通常のモードがあります。たとえば、ソリューションモードでは、すべてのライブラリがモードでコンパイルされます。次に、メインアプリケーションはソリューションと一致する環境を持っているので、私はそれを行うことができます。これは、物事を使用する自然な方法のようです。Dev
Test
Prod
Debug
Release
Local
Debug
Web.Dev.config
このようにパッケージ化した場合:
Configuration=Local
が参照するライブラリプロジェクトに誤ってマップされ、Site.vbproj
それらをコンパイルできないという問題が発生します。
考えられる解決策は2つあります。1つは正しく機能しないこと、もう1つは非常に醜いことです。
試行1
ソリューションを介してターゲットを呼び出そうとしますPackage
(この例では、「アプリケーション」はサイトプロジェクトが含まれるソリューションフォルダーです...ソリューションには実際には複数のアプリケーションがあるため、この投稿では物事を簡略化しました)。
SolutionFolder\ProjectName:Target
実行されるので、この構文はこれを行う方法だと思います:Clean
...しかし、これはスローします
試行2
醜いソリューションの場合:すべてのライブラリを変更して、これら4つのソリューション構成に対して4つの追加構成を設定すると機能します。ただし、後で異なる環境を持つプロジェクトと共有ライブラリを共同開発したい場合、これは醜くて本当に悪い計画です。また、これらの環境はライブラリとは関係がなく、ライブラリを使用するトップレベルのアプリケーションのコンテキストでのみ意味があります。味が悪い。
は?
Package
私はソリューションに複数の環境があり、新しいWeb.configの置き換えが好きですが、この状況でmsdeployタスクを呼び出す方法がわからないため、TeamCityでパッケージをビルドできます。
(msdeployコマンドラインはIISアプリをパッケージに変換するために使用されるため、おそらく呼び出したくないことに注意してください。ここで行っていることではありません。)
サンプル
繰り返しになりますが、私はここで完全に困惑しているので、実験を手伝いたい場合は、このサンプルソリューションをまとめました。
iis - パラメータにスペースが含まれている場合、powershell から msdeploy を呼び出すにはどうすればよいですか?
PowerShell スクリプトから msdeploy に送信しようとしているパラメーターのスペースに問題が発生しています。
他にも関連する記事がいくつかありますが、どれも問題を解決していません。
Power Shell と MSDeploy の使用に関する問題。
動作しない同様の SO 問題:スペースと引用符を含むパラメーターを使用してPowerShellで exe を実行する
方法
成功し、さらに複雑にすると失敗する最も単純な例は、デフォルトの Web サイトをダンプすることです。
$msdeploy = "C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe"
&$msdeploy -verb:dump -source:appHostConfig=`'既定の Web サイト`' -verbose
== SUCCESS
これです?
$sitename="default web site"
&$msdeploy -verb:dump -source:appHostConfig=$sitename -verbose
== 次のエラー
msdeploy.exe で失敗: エラー: 認識されない引数 '"-source:"appHostConfig=default'. すべての引数は「-」で始める必要があります。
At C:\xxx\test.ps1:122 char:6
+ &
+ CategoryInfo : NotSpecified: (Error: Unrecogn...begin with "-".:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
エラー数: 1.
次の
バリエーション
も失敗
し
まし
た
$sitename="'既定の Web サイト'"
&$msdeploy -verb:dump "-source:appHostConfig=$sitename" -verbose
&$msdeploy -verb:dump -source:appHostConfig="$sitename" -verbose
&$msdeploy -verb:dump -source:appHostConfig='$ sitename' -verbose
&$msdeploy -verb:dump -source:appHostConfig=`'$sitename`' -verbose
&$msdeploy -verb:dump -source:appHostConfig=`"$sitename`" -verbose
私は途方に暮れています。私が一緒に働いている人は皆途方に暮れています。マジでこれはヤバい。私はパワーシェルが大好きでした。私は msdeploy が大好きでした。それらを組み合わせるのが好きだとは言えません。cli ではなく API に集中する方が簡単だったようです。
編集:
Emperor XLII によって提案された文字列配列のパラメーターはうまく機能します。別の解決策は、次の記事で紹介されています: The Tribulations of using MSDeploy with PowerShell
deployment - TFS2010ビルド定義を複数のサーバーにデプロイしますか?
私は、MSDeployを使用したTFS2010の新しいビルドおよび展開機能を調査してきました。これまでのところ、すべてが順調に進んでいます(ただし、特定のシナリオに関する情報を見つけるのは困難です)。
ビルド定義を変更して、デプロイ先の2つ以上のサーバーを指定できますか?私がする必要があるのは、複数のサーバーにデプロイすることです(NLBを使用するテスト環境に2つあるため)。
私が今持っているのは、ビルドしてテストを実行し、テストサーバーの1つ(MsDeployAgentServiceが実行されている)にデプロイするビルド定義です。これは正常に機能し、各Webプロジェクトはプロジェクトファイルで構成されたとおりにデプロイされます。私が使用するMSBuild引数は次のとおりです。
注意:/ p:DeployIISAppPath = "xyz"はすべてのプロジェクトをデプロイせず、プロジェクト構成を上書きするため、使用しません。
別のビルド引数を追加して、複数のMSDeployServiceURLを呼び出せるようにすることはできますか?別のサーバーを指定する2番目の/p:MSDeployServiceURL引数のようなものですか?
または、WFの編集など、別の解決策を探す必要がありますか?
2か月前に投稿されたほぼ同じ質問を見ました:TFS 2010-ビルド後に複数のサーバーにデプロイするので、これを解決しようとしているのは私だけではないようです。
また、MSDeployが議論されているIIS.NETフォーラムにも投稿しました:http://forums.iis.net/t/1170741.aspx。かなり多くの意見がありましたが、やはり答えはありません。
visual-studio-2008 - vs2008 ソリューションの Web 展開パッケージを構築するために使用できる手法は何ですか?
私の Web サイトは、ASP.NET、.NET 3.5 フレームワークで構築されています。さまざまな理由から、プロジェクトを vs2010 に移行する立場にありません。その結果、vs2010 がサポートする「展開パッケージのビルド」ターゲットを使用できません。
vs2008インストールでWeb展開パッケージ(Web展開経由でIIS 7にインポートできるzipアーカイブ)を構築する方法を知っている人はいますか(ここではmsbuildを使用することを好み、vs2008統合は必要ありません)。
FWIW、ウェブサイトをエクスポートする目的で一時サーバーに公開しないようにしています。ただし、それが唯一の選択肢である場合は、そうです。
asp.net - Web.config変換をローカルで機能させる
web.config変換をローカルで機能させたいのですが、どうやら変換はデプロイメントを実行しているときにのみ発生します。
「再構築」プロセスを経ずにmsbuildターゲット「TransformWebConfig」を実行し、変換されたweb.configを吐き出すディレクトリを指定して出力する方法を知っている人はいますか?
編集:Sayedの回答を使用.bat
して、タスクを実行するためのファイルを作成しました。
「Transformation.proj」は、以下の回答にあるSayedのコードスニペットのコピーです。変換のソース、ターゲット、および宛先を指定するだけです。新しいファイル、この場合、変換された「web.config」は「D:\Demo」ディレクトリにあります。プロジェクトのweb.configを上書きするためにコピーし、最後に、「demo」フォルダーに生成されたファイルを削除します。
また、このバッチファイルを実行し、変換を実行するためのマクロを作成しました。
ツールバーにボタンを追加して、このバッチを実行したり、実行するショートカットキーを割り当てたりすることもできます。
msbuild - MS Deploy はパッケージと変換を実行できますが、展開はできませんか?
.NET 4.0 で msbuild を使用すると、"Package" ターゲットを使用して Web プロジェクトをビルドでき、パッケージを zip ファイルにうまく配置できます。しかし、そこにあるweb.configを見ると、変換されておらず、「$(ReplacableToken_Web_SiteConnection-Web.config Connection String_0)」があります
「TransformWebConfig」ターゲットを実行すると、適切な変換が行われますが、独自のサイロでのみ実行されます。
また、「Build」ターゲットを実行して「DeployOnBuild=True;DeployTarget=MSDeployPublish」プロパティを渡すと、適切な web.config 変換が行われたサーバーにパッケージがデプロイされます。
しかし、パッケージをサーバーに手動でデプロイしたい場合、zip ファイルに最終的な web.config が含まれるように、「TransformWebConfig」を使用して「パッケージ」を実行するにはどうすればよいですか?
asp.net - Web 展開とフォルダーのアクセス許可
VS 2010 を使用して、Web アプリケーションの展開パッケージを構築しています。生成された展開 ccommand スクリプトを使用して、IIS 6.0 サーバーに手動で展開します。すべてのものは、Inetpub の既定の Web サイトに適切にコピーされます。私が抱えている唯一の問題は、展開するとフォルダーのアクセス許可がリセットされ続けることです。
私のウェブサイトが「Mywebsite」フォルダーの下にあるとします。特定のユーザー XYS にこのフォルダーへのフル コントロールを許可します。すべては順調です。次回デプロイすると、ユーザー XYZ は完全な制御を失い、権限がリセットされます。
powershell - Add-Typeを使用してMicrosoft.Web.Deploymentをロードするにはどうすればよいですか?
MSDeployAPIを使用するPowerShellスクリプトをいくつか作成しています。を使用してアセンブリをロードできます
場所はGACにあります:
ただし、Add-Typeを使用してアセンブリをロードできません。アセンブリが見つからず、1つ以上のアセンブリが欠落しているというエラーが表示されます。
Add-Typeを使用してMicrosoft.Web.Deploymentをロードするにはどうすればよいですか?