这是我当前的设置:我有一个解决方案(sln文件),它在一个文件夹中容纳2个c#web应用程序。
当我发布带有参数SkipExtraFilesOnServer=True
的解决方案时 - 它正确传递。
但是,这样的方法并不像看起来那么好 - 它从服务器上的解决方案文件中删除,并且在最坏的情况下(使用程序集重命名重构)可能会在部署后将应用程序保留为不可用状态。
所以,我想用SkipExtraFilesOnServer=False
交付,将清理和实际部署留给MsDeploy。
但是,在这种情况下,第二个Web应用程序会清除所有内容,而不会添加到其中。
是否可以在后续构建Web应用程序上覆盖SkipExtraFilesOnServer=False
,如果它在第一个应用程序上是SkipExtraFilesOnServer=False
?
答案 0 :(得分:0)
我找到了解决这种不太可能发生的问题的方法。 在每个额外的Web应用程序中,应在csproj / vbproj文件的末尾添加以下内容:
<Target Name="BeforeBuild">
<PropertyGroup>
<SkipExtraFilesOnServer Condition="!$(SkipExtraFilesOnServer)">True</SkipExtraFilesOnServer>
</PropertyGroup>
或者,如果已经定义了目标BeforeBuild,则添加到它:
<PropertyGroup>
<SkipExtraFilesOnServer Condition="!$(SkipExtraFilesOnServer)">True</SkipExtraFilesOnServer>
</PropertyGroup>