MsDeploy:一个解决方案中有 2 个 Web 应用程序

MsDeploy: 2 webapplications in one solution

这是我当前的设置:我有 1 个解决方案(sln 文件),在一个文件夹中包含 2 个 c# web 应用程序。 当我使用参数 SkipExtraFilesOnServer=True 发布解决方案时 - 它已正确交付。 但是,这种方法并不像看起来那么好 - 它会从服务器上的解决方案文件中删除,并且在最坏的情况下(通过重命名程序集进行重构)会使应用程序在部署后处于不可用状态。

所以,我想交付 SkipExtraFilesOnServer=False,将清理和实际部署留给 MsDeploy。 但是,在这种情况下,第二个 web 应用程序会清理所有内容,而不会添加到其中。 是否可以在后续构建的 Web 应用程序上覆盖 SkipExtraFilesOnServer=False,如果第一个是 SkipExtraFilesOnServer=False

我找到了这种不太可能发生的问题的解决方案。 在每个额外的 web 应用程序中,应在 csproj/vbproj 文件的末尾添加以下内容:

  <Target Name="BeforeBuild">
<PropertyGroup>
    <SkipExtraFilesOnServer Condition="!$(SkipExtraFilesOnServer)">True</SkipExtraFilesOnServer>
</PropertyGroup>

或者,如果目标 BeforeBuild 已经定义,添加到它:

<PropertyGroup>
    <SkipExtraFilesOnServer Condition="!$(SkipExtraFilesOnServer)">True</SkipExtraFilesOnServer>
</PropertyGroup>