DeployIisAppPath MSBuild属性是用于什么的?

3

DeployIisAppPath MSBuild属性是用来做什么的?

我问这个问题是因为我正在使用Azure DevOps中的一个构建定义,其中包含这个属性。这是一个yaml定义,用于构建一个ASP.NET Core项目,并包含以下任务:

- 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一词的每个堆栈溢出问题,阅读了这个属性和属性的微软文档,并阅读了几篇博客文章。大多数我看到的东西都在示例中提到该属性,但没有解释它的作用。我看到的最接近的解释是将值设置为IIS中网站的名称的示例,但这不适用于我正在使用的现有管道,其工作正常。 MSBuild如何处理DeployIisAppPath属性?

你做了哪些研究? - Daniel Mann
阅读包含单词“DeployIisAppPath”的每个Stack Overflow问题,阅读Microsoft文档并阅读多篇博客文章。如果您有其他研究建议对我有帮助,请随时提出。 - Tim
1
不确定为什么这个问题被投了关闭票,可能是有人误解了我的问题,但是为了明确起见,我不是在寻求建议。我正在寻找一种对流行软件中某些功能的解释。我不需要基于意见的答案,我想要一个关于MSBuild如何使用该属性的事实性解释。如果它只在特定条件下使用,我也想知道这些条件是什么。 - Tim
这个问题有任何更新吗?您解决了这个问题吗?如果没有,能否请您告诉我关于这个问题的最新信息? - Leo Liu
我并没有遇到需要解决的问题,我只是想找一个关于这个属性如何使用的解释。我感觉它只与Web部署有关,尽管我没有在任何地方看到过这种说法。坦率地说,我得出的结论是,除非它给我带来任何问题,否则没有必要去理解它,而它并没有给我带来任何问题。据我所知,在我的流水线中,该值被完全忽略了。 - Tim
2个回答

1

DeployIisAppPath MSBuild属性是用来做什么的?

你找到的是正确的。

我见过的最接近解释的例子就是将值设置为IIS中网站的名称。

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

/p:DeployIisAppPath="MySite/one"

/p:DeployIisAppPath="MySite/two"

你可以查看 这个帖子这个帖子,了解更多细节。

1
“/p:DeployIisAppPath”这个命令是否单独使用具有任何含义,还是必须后面跟着下划线和其他文本?这是否特定于某种部署方法?例如,在Visual Studio中创建Web Deploy发布配置文件时使用此选项,但如果通过Azure DevOps管道构建和部署,则被忽略,或类似的情况。 - Tim
@Tim,感谢您的回复。这是我的错。我们不需要总是在下划线后面跟一些进一步的文本。如果我们有多个 Web 应用程序项目在同一个 IIS 上,当我们部署其中一个 Web 应用程序项目时,我们需要提供 DeployIisAppPath 属性来指定网站和 IIS 中的 Web 应用程序名称,否则,VS/MSBuild 不知道将这些 Web 应用程序项目部署到相应的项目中。祝您拥有愉快的一天。 - Leo Liu
@Tim,这个问题怎么样了?评论有帮助吗? - Leo Liu
1
是的,这解释了下划线,谢谢。这个属性只被Web Deploy使用,其他构建和部署过程会忽略它吗?从你所说的来看,它定义了IIS中网站的名称,但在我的用例中绝对没有发生这种情况(但我没有使用Web Deploy)。 - Tim

1
总结与Leo的讨论,DeployIisAppPath属性被Web Deploy用于指定IIS中网站的名称。如果不使用Web Deploy,则该属性将被忽略。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接