令人惊讶的是,Visual Studio 2012的答案不在这里:
对于Web应用程序和网站,您可以编辑.pubxml文件!
您可以按照我的回答或尝试稍后找到的本指南:http :
 //www.leniel.net/2014/05/using-msdeploy-publish-profile-pubxml-to-create-an-empty-folder-structure-使用msdeployskiprules.html#sthash.MSsQD8U1.dpbs进行iis和跳过删除
是的,您不仅可以对网站项目执行此操作,还可以对网站执行此操作。我花了很长时间在Internet上寻找Visual Studio网站(NOT网站项目)这种难以捉摸的排除功能,并且之前得出结论认为这是不可能的,但看起来是这样的:
在Web应用程序项目的〜/ Properties / PublishProfiles和网站的〜/ App_Data / PublishProfiles中的[mypublishwebsitename] .pubxml文件中,只需添加:
  <ExcludeFilesFromDeployment>File1.aspx;Folder2\File2.aspx</ExcludeFilesFromDeployment> 
 <ExcludeFoldersFromDeployment>Folder1;Folder2\Folder2a</ExcludeFoldersFromDeployment>
作为<PropertyGroup>.pubxml文件中主要元素的子元素。除非您要键入特定的构建类型(例如发布或调试),否则无需添加新元素。
可是等等!!!
如果要使用“发布”配置中的以下设置从目标/目标服务器中删除文件:

然后,Web发布过程将在源/目标服务器上删除任何被排除的内容,例如您在<ExcludeFoldersFromDeployment>和中划定的项目<ExcludeFilesFromDeployment>!
MsDeploy跳过规则可用于救援:
首先,Web Publish使用MSBuild之外的其他方式进行发布(称为Task IO或类似的方式),但是它存在错误并且无法识别跳过规则,因此必须将其添加到.pubxml中:
<PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
</PropertyGroup>
我会继续<WebPublishMethod>在它自己的<PropertyGroup>,你会觉得你可能只是有一个<PropertyGroup>在你的.pubxml但我跳过规则元素并没有被调用,直到我感动<WebPublishMethod>到自己的<PropertyGroup>元素。是的,很疯狂,但是实际上您需要为Web Publish排除所有资源,同时又不删除服务器上的文件夹/文件,这确实很疯狂。
现在,我的.pubxml中实际上是我的SkipRules,ExcludeFolders和ExcludeFiles声明:
<ExcludeFoldersFromDeployment>Config</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Photos</ExcludeFoldersFromDeployment>
<ExcludeFoldersFromDeployment>Temp</ExcludeFoldersFromDeployment>
<ExcludeFilesFromDeployment>Web.config</ExcludeFilesFromDeployment>
 <AfterAddIisSettingAndFileContentsToSourceManifest>AddCustomSkipRules</AfterAddIisSettingAndFileContentsToSourceManifest>
现在,一个“跳过规则”(在您的.pubxml中<Target>是“子规则” <Project>):(您可以将<SkipAction>所有操作留空,以“跳过”,但是我没有对此进行测试并且不确定。
  <Target Name="AddCustomSkipRules">
    <Message Text="Adding Custom Skip Rules" />
    <ItemGroup>
      <MsDeploySkipRules Include="SkipConfigFolder">
        <SkipAction>Delete</SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\Config</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipPhotosFolder">
        <SkipAction>Delete</SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\Photos</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipWebConfig">
        <SkipAction>Delete</SkipAction>
        <ObjectName>filePath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\Web\.config</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipWebConfig">
        <SkipAction>Delete</SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>$(_DestinationContentPath)\\Temp</AbsolutePath>
        <XPath>
        </XPath>
      </MsDeploySkipRules>
    </ItemGroup>
  </Target>
并且,请不要忘记.在filePath Skip规则中使用反斜杠转义。