2015-03-13 50 views
0

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

所以,我想用SkipExtraFilesOnServer=False交付,留下清理和实际部署到MsDeploy。 但是,在这种情况下,第二个Web应用程序会清理所有不添加到它的内容。 是否可以在后续版本的Web应用上重写SkipExtraFilesOnServer=False,如果它是第一个版本的SkipExtraFilesOnServer=False

+0

我不确定你为什么要把2个应用程序放在同一个文件夹中。如果为每个Web应用程序创建一个单独的.vcproj文件,它们将在解决方案资源管理器中显示为单独的节点;然后您可以通过右键单击并单击发布来单独发布它们。 – 2015-03-13 14:51:18

+0

这就是我们在这里,我必须自动化它。 这是以前在这里构建解决方案的方式:每个业务目标都有多个Web应用程序,全部部署到一个IIS网站...... – 2015-03-13 15:15:57

回答

0

我找到了这样一个不太可能发生的问题的解决方案。 在每个附加web应用的,一个应在的csproj/vbproj文件结束后添加:

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

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

<PropertyGroup> 
    <SkipExtraFilesOnServer Condition="!$(SkipExtraFilesOnServer)">True</SkipExtraFilesOnServer> 
</PropertyGroup> 
相关问题