为什么VS2013在使用其他机器时发布所有网站文件?

Dav*_*ave 8 publish web visual-studio-2013

我有一台家用机器和办公机器用于使用Visual Studio 2013发布网站.如果我从同一台机器进行更改并重新发布,则只发布更改,而不是所有文件.

但是,当在办公室使用我的克隆机时,即使我做了最新的,做了一个小改动,然后重新发布,所有文件都被发布,而不仅仅是那些已经改变的文件,而不仅仅是已经重新编译的文件. .所有dll文件,甚至是未更改或已使用新日期重新编译的第三方dll都将重新发布.如果我的队列在我上次发布后在他的机器上发布了一个小变化,那么同样的事情就会发生.如果从同一台机器发布两次,则只会发布已更改的文件,这不是问题.

反正是因为使用不同的机器发布而不是上次发布的机器来阻止完全重新发布?谢谢.

Der*_*ick 5

这似乎使“确定更改”变慢了很多,但对于 .Net 4.5 [和 up(?)],请使用以下信息: https : //msdn.microsoft.com/en-us/library/ee942158

要将 Web Deploy 配置为使用校验和而不是日期来确定需要将哪些文件复制到服务器,请将以下元素添加到 .pubxml 文件(发布设置):

<MSDeployUseChecksum>true</MSDeployUseChecksum>
Run Code Online (Sandbox Code Playgroud)

像这样:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <MSDeployUseChecksum>true</MSDeployUseChecksum>
    <!— other settings omitted to keep the example short -->
    <PublishDatabaseSettings>
      <!— this section omitted to keep the example short -->
    </PublishDatabaseSettings>
  </PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)