自動プロバイダーが正確に何をするのか、どのように機能するのか、いつ使用するのかを誰かが (technet/msdn ドキュメントよりも) 説明できますか?
これは Web Deploy に関するものです。-dest:auto を指定している多くのドキュメントを見てきましたが、私にはあまり意味がありません。
自動プロバイダーは、宛先のプロバイダーがソース プロバイダーと同じであることを指定します。
例
msdeploy.exe -verb:sync -source:appHostConfig="MySite" -dest:auto,computername=Server1
auto プロバイダーを使用すると、destination 引数が -source 引数と同じ場合に、-dest 引数のフル パスを入力することを回避できます。また、マニフェスト ファイルをアーカイブまたはパッケージから個別にコピーする必要もなくなります。
自動プロバイダーは、指定されたソースを取得し、宛先コンピューター上の対応する場所を使用します。たとえば、ソースとして appHostConfig=Site1 を指定すると、ターゲット コンピューターの宛先は Site1 になります。これは、Web サイトを「そのまま」リモート マシンに同期する場合に便利です。
意味をなさない例:
msdeploy.exe -verb:sync -source:package=myapp.zip -dest:auto
宛先を正確にソースに設定するのはなぜですか? ポイントは?単にiteslfでソースを上書きしていませんか?
VS2010 でパッケージを公開して生成された cmd ファイルは、次のようなものを生成します。
"C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" -source:package='MySourcePath' -dest:auto"
auto は、ソースが自分自身を上書きするだけという意味ではありませんか? しかしそうではなく、実際には IIS Web サイトを更新します (マニフェストの設定に基づいて)。
パッケージを宛先として使用しようとしましたが、この場合、IIS サイトではなくソース パッケージが更新されました。
この質問のきっかけは、私が CI を実装しており、過去に常に msbuild/xcopy を使用してきたことです。今msdeployを利用したいです。Visual Studio から生成されたmyproject.cmdを単純に呼び出すのではなく、理解したいと考えています。
たとえば、この SO リンクは、 dest 引数に auto プロバイダーを使用することを指定しています。
ありがとう