【问题标题】:What is DeployIisAppPath MSBuild property for?DeployIisAppPath MSBuild 属性有什么用?
【发布时间】:2020-07-17 15:54:18
【问题描述】:

DeployIisAppPath MSBuild 属性有什么作用?

我问的原因是我正在使用 Azure DevOps 中的构建定义,它使用它。它是一个构建 ASP.NET Core 项目的 yaml 定义,它包含以下任务:

- task: VSBuild@1
  displayName: Run MSBuild
  inputs:
    solution: '$(solution)'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\ProjectName-dev.zip" /p:DeployIisAppPath="ProjectName Dev" /p:EnvironmentName=QA'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

我已克隆此现有管道以创建单独的构建,但我不知道 /p:DeployIisAppPath="ProjectName Dev" 做了什么,所以我不知道是否/如何更改它。我在 IIS 中看不到与 ProjectName Dev 匹配的任何内容(它不是网站名称或类似名称),所以我想知道它是否在我的场景中未使用。 DeployIisAppPath 属性是否适用于特定情况?

为了清楚起见,我不是在寻找特定问题的解决方案,而是在寻找对属性的解释,以便了解现有管道在做什么。我已经阅读了每个包含 DeployIisAppPath 一词的堆栈溢出问题,阅读了有关此属性和一般属性的 Microsoft 文档,并阅读了几篇博客文章。我见过的大多数东西都在示例中提到了该属性,但对其作用的解释为零。我看到的最接近解释的是在 IIS 中将值设置为网站名称的示例,但我正在使用的现有管道并非如此,它工作正常。

MSBuild 如何处理DeployIisAppPath 属性?

【问题讨论】:

  • 你做了哪些研究?
  • 阅读所有包含DeployIisAppPath 的堆栈溢出问题,阅读微软文档,阅读几篇博文。如果您有其他对我有帮助的研究,请随时提出建议。
  • 不知道为什么这有一个密切的投票,可能有人误解了我的问题,但要明确的是,我不是在寻找建议。我正在寻找流行软件中某些功能的解释。我不是在寻求基于意见的答案,我想要一个关于 MSBuild 使用该属性的事实的解释。如果只在某些条件下使用,我也想知道这些条件是什么。
  • 这个问题有什么更新吗?你解决了这个问题吗?如果没有,请告诉我有关此问题的最新信息吗?
  • 我没有想要解决的问题,我只是想找到关于如何使用该属性的解释。我感觉它只与 Web 部署有关,尽管我在任何地方都没有看到这种说法。坦率地说,我得出的结论是,除非它给我带来任何问题,否则它不值得尝试理解,但它没有这样做。据我所知,这个值在我的管道中被完全忽略了。

标签: asp.net-core azure-devops msbuild


【解决方案1】:

DeployIisAppPath MSBuild 属性有什么用途?

你发现的是正确的。

我见过的最接近解释的是值是的示例 在 IIS 中设置为网站的名称

在特殊情况下,如果我们在同一个IIS上部署多个webapp项目,需要提供DeployIisAppPath属性来指定网站名称和IIS中的webapp名称,如:

/p:DeployIisAppPath="MySite/one"

/p:DeployIisAppPath="MySite/two"

您可以查看this threadthis thread 了解更多详情。

【讨论】:

  • /p:DeployIisAppPath 本身是否有任何意义,还是必须始终跟在下划线和其他文本后面?这是否特定于某种部署方法?例如如果在 Visual Studio 中创建发布配置文件以进行 Web 部署,是否会使用此功能,但如果通过 Azure DevOps 管道或类似方式构建和部署则忽略?
  • @Tim,谢谢您的回复。这是我的错。我们不需要使用它总是后跟一个下划线和一些进一步的文本。如果我们有多个webapp项目同一个IIS,我们需要在部署其中一个webapp项目时提供DeployIisAppPath属性指定网站名称和IIS中的webapp名称,否则VS/MSBuild不知道部署此 webapp 项目到 IIS 中的相应项目。祝你有美好的一天。
  • @Tim,这个问题怎么样? cmets 对您有帮助吗?
  • 是的,澄清了下划线,谢谢。该属性是否仅由 Web 部署使用,而在其他构建和部署过程中被忽略?从您所说的听起来,它在 IIS 中定义了网站的名称,但这绝对不会在我的用例中发生(但我没有使用 Web 部署)。
  • @Tim,如果您不使用 web 部署到 IIS,我认为此属性对您没有影响。这完全符合您在问题中的情况。顺便说一句,如果答案可以帮助您解决问题,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。
【解决方案2】:

用Leo总结一下线程,好像DeployIisAppPath属性被web deploy用来指定IIS中的网站名称。不使用 web deploy 时会被忽略。

【讨论】:

    猜你喜欢
    • 2014-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-10
    • 2010-11-12
    • 2013-08-08
    • 2014-09-12
    • 1970-01-01
    相关资源
    最近更新 更多