gpt4 book ai didi

msbuild - 如何为包目标指定根文件夹?

转载 作者:行者123 更新时间:2023-12-04 02:05:44 24 4
gpt4 key购买 nike

我通过调用以下命令使用 msbuild 发布我的 Web 应用程序:

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

zip 文件的内容始终具有深层文件夹结构,其中包含从驱动器根目录到项目文件夹的完整路径。有没有办法让它更平坦?我想在 zip 中有一个像 root 这样的项目文件夹。

最佳答案

您可以使用 _PackageTempDir而不是 PackageLocation对于类似 IIS 的平面结构,但是如果您想将 .zip 和 .cmd 与 list 一起保留,那么不,您无法真正摆脱绝对路径而不重写 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 的内容。

关于msbuild - 如何为包目标指定根文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10983323/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com