残念ながら、公開プロファイルの共有は、MSBuildではサポートまたは実装されていません。プロファイルから公開するロジックは、VS自体に含まれています。幸いなことに、プロファイルには多くの情報が含まれていないため、探しているものを実現する方法があります。私たちのターゲットは、公開ダイアログが続くのとまったく同じ手順を具体的にサポートしていませんが、チームビルドから同じ結果を達成するには、2つの選択肢があります。ここで両方の概要を説明します。
デプロイするためにチームビルド定義をセットアップするときは、ビルドプロセスのMSBuild引数にいくつかの値を渡す必要があります。私がこれを強調した下の画像を参照してください。

オプション1:
次の引数を渡します。
/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false
これらのパラメータについて少し説明し、結果を示してから、次のオプションについて説明します。
DeployOnBuild=true
:これは、DeployTarget
プロパティで定義されたターゲットを実行するようにプロジェクトに指示します。
DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder
:これは、DeployTargetターゲットを指定します。
PackageTempRootDir="\\sayedha-w500\BuildDrops\Publish"
:パッケージファイルが書き込まれる場所を指定します。これは、ファイルがパッケージ化される前に書き込まれる場所です。
AutoParameterizationWebConfigConnectionStrings=false
:これは、Web Publishing Pipeline(WPP)に、web.configファイルの接続文字列をパラメーター化しないように指示します。これを指定しない場合、接続文字列の値は$(ReplacableToken_dummyConStr-Web.config Connection String_0)のようなプレースホルダーに置き換えられます。
これを行った後、ビルドを開始できます。次に、PackageTempRootDirの場所の中に、PackageTmpフォルダーがあり、これには、探しているコンテンツが含まれています。
オプション2:
前のオプションでは、PackageTmpという名前のフォルダーが作成されることに気付いたと思います。それが不要な場合は、代わりに次のオプションを使用できます。
/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir="\\sayedha-w500\BuildDrops\Publish";AutoParameterizationWebConfigConnectionStrings=false
ここでの違いは、PackageTempRootDir
あなたの代わりにを渡すことです_PackageTempDir
。そもそも私が提案しない理由は、_で始まるMSBuildプロパティは、将来のバージョンでは他の何かを意味するか、まったく存在しない可能性があるという意味で、プロパティが本質的に「内部」であることを意味するためです。したがって、自己責任で使用してください。
オプション3
そうは言っても、ビルドを使用してWebをパッケージ化することができます。これを実行する場合は、次の引数を使用します。
/p:DeployOnBuild=true;DeployTarget=Package
ビルドのドロップフォルダーでこれを行うと、通常どおり_PublishedWebsitesフォルダーが見つかり、その中にフォルダー{ProjectName} _Packageがあります。ここで、{ProjectName}はプロジェクトの名前です。このフォルダーには、パッケージ、.cmdファイル、パラメーターファイル、およびその他のいくつかのファイルが含まれます。これらのファイルを使用して、Webをデプロイできます。
それが過負荷の情報ではなかったことを願っています。