Visual Studio 2012 Web Deploy发布预览将所有文件显示为已更改

时间:2013-08-14 15:34:25

标签: visual-studio-2012 preview web-publishing one-click-web-publishing

当您是处理代码库的唯一开发人员时,Visual Studio 2012中的“Web发布”对话框的“预览”窗格非常有效(请参阅下面的示例): enter image description here

但是,当多个开发人员使用它时,它似乎会倒下。它似乎使用文件时间戳作为比较的手段,因此即使您从TFS获得最新信息,您的时间戳也不同于服务器上发布的其他人的文件,因此它在列表中包含了许多幻像更改(一旦你钻进,差异的两个窗格是相同的。)

是否有人为此方案提出了解决方法?

2 个答案:

答案 0 :(得分:7)

对于使用较新的Visual Studio版本(2013或更高版本)的人来说,这可能有用。指定应使用文件的校验和而不是时间戳:

1)打开发布配置文件xml文件:\<web project>\Properties\PublishProfiles\<publishprofile>.pubxml

2)在属性组中添加<MSDeployUseChecksum>true</MSDeployUseChecksum>。最终结果应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121. 
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>

    <MSDeployUseChecksum>true</MSDeployUseChecksum>

    <!-- other configuration here -->
  </PropertyGroup>
  <ItemGroup>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)MdwAutomaticTestingModels-Web.config Connection String">
      <UpdateDestWebConfig>False</UpdateDestWebConfig>
    </MSDeployParameterValue>
  </ItemGroup>
</Project>

可以找到更多详细信息here

答案 1 :(得分:2)

到目前为止,没有。我注意到Team Foundation Server存在同样的问题并通过文件系统发布。问题源于TFS用于跟踪给定配置文件的上次发布内容的XML文件。这些文件存在于Project \ Properties \ Publish Profiles文件夹下。这些文件会自动添加到项目中,几乎无法阻止TFS。当团队成员注意到他们发布的内容并不一定与其计算机上的内容相匹配时,他们会删除并重新创建新的发布配置文件。完全不是一个可扩展的解决方案,但如果你的谷歌视觉工作室发布不起作用,你会遇到同样问题的大量人。