DeployIisAppPath MSBuild 属性 有什么用?

What is DeployIisAppPath MSBuild property for?

DeployIisAppPath MSBuild 属性 有什么作用?

我问的原因是我正在使用它的 Azure DevOps 中的构建定义。这是一个构建 ASP.NET 核心项目的 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" 做了什么,所以我不知道 if/how 我应该改变它。我在 IIS 中看不到任何匹配 ProjectName Dev 的内容(它不是网站名称或类似名称)所以我想知道它是否在我的场景中未使用。 DeployIisAppPath 属性 是否适用于特定情况?

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

MSBuild 用 DeployIisAppPath 属性 做了什么?

What is DeployIisAppPath MSBuild property for?

您发现的是正确的。

The nearest I've seen to an explanation is examples where the value is set to the name of the website in IIS

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

/p:DeployIisAppPath="MySite/one"

/p:DeployIisAppPath="MySite/two"

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

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