次のコマンドを呼び出して、msbuild を使用して Web アプリケーションを公開します。
msbuild myweb.csproj /T:Package /P:PackageLocation=obj\Output\myweb.zip
zip ファイルの内容は常に、ドライブのルートからプロジェクト フォルダーまでのフル パスを含む深いフォルダー構造になっています。もっと平らにする方法はありますか?root のようなプロジェクト フォルダを zip で作成したいと考えています。
次のコマンドを呼び出して、msbuild を使用して Web アプリケーションを公開します。
msbuild myweb.csproj /T:Package /P:PackageLocation=obj\Output\myweb.zip
zip ファイルの内容は常に、ドライブのルートからプロジェクト フォルダーまでのフル パスを含む深いフォルダー構造になっています。もっと平らにする方法はありますか?root のようなプロジェクト フォルダを zip で作成したいと考えています。
_PackageTempDir
IIS のようなフラットな構造の代わりに使用できますPackageLocation
が、.zip と .cmd をマニフェストと共に保持したい場合は、Microsoft.Web.Publishing.targets またはvar の使用方法によるカスタム タスク。
<_PackageTempDir>$(PackageTempRootDir)\PackageTmp</_PackageTempDir>
<_PackageTempDirFullPath>$([System.IO.Path]::GetFullPath($(_PackageTempDir))</_PackageTempDirFullPath>
<_MSDeployDirPath Include="$(_PackageTempDir)" />
<_MSDeployDirPath_FullPath>@(_MSDeployDirPath->'%(FullPath)')</_MSDeployDirPath_FullPath>
ただし、次のように、ローカル共有で絶対パスを非表示にすることで、msbuild をだまして少しフラットにすることができます。
net share foo=D:\Temp
msbuild WebApplication1.csproj /t:Package /p:PackageTempRootDir=\\localhost\foo
それはあなたの深いローカルパスを次のように変更しますobj\Debug\Package\WebApplication1.zip\Content\_S_Slocalhost_Sfoo\PackageTmp