gpt4 book ai didi

visual-studio-2010 - VS2010 Web 部署 : how to remove absolute paths and automate setAcl?

转载 作者:行者123 更新时间:2023-12-03 15:19:56 25 4
gpt4 key购买 nike

Visual Studio 2010 中的集成 Web 部署非常好。它可以创建一个包,准备在目标 IIS 机器上使用 MSDeploy 进行部署。问题是,当安装 MSDeploy 时,这个包将被重新分发到客户端,该客户端将使用来自 IIS 的“导入应用程序”自行安装它。

创建的默认包始终包含来自开发机器的完整路径,源 list 文件中的“D:\Dev\XXX\obj\Debug\Package\PackageTmp”。它当然不会阻止安装,因为它是这样设计的,但它在导入对话框中看起来很丑陋,对客户端没有意义。更糟糕的是,他会想知道这些路径是什么,而且看起来很困惑。

通过自定义 .csproj 文件(通过添加包创建任务使用的 MSBuild 属性),我设法向包添加了其他参数。然而,我花了整个下午的大部分时间在 2600 行长的 Web.Publishing.targets 上试图了解是什么参数影响了“开发路径”行为,但徒劳无功。我还尝试在部署后使用 setAcl 自定义给定文件夹上的安全性,但我只能通过使用相对路径在 MSBuild 中做到这一点……不过,如果我解决了第一个问题,这应该无关紧要。

我可以在创建后修改生成的存档,但我更喜欢使用 MSBuild 自动化所有内容。有谁知道这是怎么做到的吗?

最佳答案

显示路径由属性_MSDeployDirPath_FullPath决定.

此属性由以下属性链设置:

  • <_MSDeployDirPath_FullPath>@(_MSDeployDirPath->'%(FullPath)')</_MSDeployDirPath_FullPath>
  • <_MSDeployDirPath Include="$(_PackageTempDir)" />
  • <_PackageTempDir>$(PackageTempRootDir)\PackageTmp</_PackageTempDir>
  • <PackageTempRootDir>$(IntermediateOutputPath)Package</PackageTempRootDir>
  • _MSDeployDirPath_FullPath <-- @(_MSDeployDirPath->'%(FullPath)') <-- _PackageTempDir <-- $(PackageTempRootDir)\PackageTmp
    如您所见,您不能拥有相对路径,因为 _MSDeployDirPath_FullPath_MSDeployDirPath的全路径.

    但是你 可以通过覆盖属性 来简化显示的路径 _PackageTempDir使用您希望向客户显示的路径。 (此路径将用作包生成的临时目录)

    您可以覆盖该属性:
  • 在命令行中:
    msbuild.exe projectfile.csproj /t:Package /p:_PackageTempDir=C:\Package
  • 或者直接在项目文件中:
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

    <!-- Must be after Microsoft.WebApplication.targets import -->
    <PropertyGroup>
    <_PackageTempDir>C:\Package</_PackageTempDir>
    </PropertyGroup>
  • 关于visual-studio-2010 - VS2010 Web 部署 : how to remove absolute paths and automate setAcl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2959964/

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