【问题标题】:Visual Studio 2012 Web Deploy publish preview shows all files as changedVisual Studio 2012 Web Deploy 发布预览显示所有文件已更改
【发布时间】:2013-08-14 15:34:24
【问题描述】:

当您是唯一一位处理代码库的开发人员时,Visual Studio 2012 中“Web 发布”对话框的“预览”窗格可以很好地工作(参见下面的示例):

但是,当多个开发人员使用它时,它似乎会下降。它似乎使用文件时间戳作为比较的手段,所以即使你从 TFS 获得了最新的,你的时间戳也不同于其他人在服务器上发布的文件,所以它在列表中包含了很多幻像更改(深入了解后,差异的两个窗格是相同的)。

有没有人想出解决这种情况的方法?

【问题讨论】:

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


    【解决方案1】:

    可能对使用较新 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

    【讨论】:

    • 感谢@Alexei,您的解决方案确实有效。应将其标记为答案,以便其他人从中受益。我投了赞成票。
    【解决方案2】:

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

    【讨论】:

    • 有趣。自从我发布了这个,我探索了文件系统发布选项,在这方面它似乎更智能。它完全忽略了服务器时间戳;相反,它将 .pubxml.user 文件中的时间戳与文件的当前时间戳进行比较,如果文件较新则发布。在这个问题上似乎是 YMMV。
    • 我将此想法添加到 Visual Studio 的用户语音中:Improve support for multiple users using Web Deploy Publish Preview。去投票吧!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    相关资源
    最近更新 更多