根据Visual Studio中的单击发布documentation,
首次发布时,运行应用程序所需的所有文件都将复制到托管服务提供商。发布更新时,仅复制更改的文件。
在我们的环境中(Visual Studio 2012中的ASP.NET MVC 4,如果它很重要),如果我是第一个发布Web应用程序的人,则会发布所有文件。如果我进行更新然后再次发布,则只发布更新。
到目前为止,非常好。
但是,如果其他开发人员随后发布,则会发布所有文件(包括未更改的文件)。他们可以进行更新和发布,只发布更改。但是如果我再次发布,所有文件(包括未更改的文件)都会被发布。
基本上,每当项目由最近发布的人发布时,所有文件(包括未更改的文件)都会发布。
答案 0 :(得分:1)
带有exchange的Twitter Sayed让我a blog post向他提供了解决Visual Studio 2012及更高版本问题的方法(遗憾的是,不支持2010年)。< / p>
确定发布过程将上传哪些文件的默认方法使用文件时间戳,无论出于何种原因,这会导致我们看到的问题。
有一种替代方法,它使用校验和而不是时间戳。要使用校验和方法,请在.csproj
导入上方的Microsoft.WebApplication.targets
文件中包含以下属性组:
<PropertyGroup>
<MSDeployUseChecksum>true</MSDeployUseChecksum>
</PropertyGroup>
在计算和比较校验和时有一个短暂的延迟,但它比等待所有文件的发布要快得多。