12

次のコマンドを呼び出して、msbuild を使用して Web アプリケーションを公開します。

msbuild myweb.csproj /T:Package /P:PackageLocation=obj\Output\myweb.zip

zip ファイルの内容は常に、ドライブのルートからプロジェクト フォルダーまでのフル パスを含む深いフォルダー構造になっています。もっと平らにする方法はありますか?root のようなプロジェクト フォルダを zip で作成したいと考えています。

4

1 に答える 1

12

_PackageTempDirIIS のようなフラットな構造の代わりに使用できます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

于 2012-06-12T00:49:03.733 に答える