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>
这是我当前的设置:我有 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>