2

按照documentation爲一鍵式發佈,的Visual Studio 2012一鍵在Visual Studio發佈發佈所有文件(不只是更新)

第一次發佈,所有的文件都要求運行你的應用程序被複制到主機提供商。當您發佈更新時,僅複製更改的文件。

在我們的環境(ASP.NET MVC 4在Visual Studio 2012,如果它事項),如果我是第一個發佈一個Web應用程序,所有的文件發佈。如果我進行更新並再次發佈,則只會發佈更新。

到目前爲止,這麼好。

但是,如果有其他開發者發佈,則所有文件(包括不變的文件)都會發布。他們可以進行更新和發佈,只有更改發佈。但如果我再次發佈,所有文件(包括不變的文件)都會發布。

基本上,只要項目由最近發佈的人以外的人發佈,就會發布所有文件(包括不變的文件)。

  1. 這種行爲是故意的嗎?
  2. 有沒有什麼辦法可以阻止它(只發布更新,不管誰在發佈)?

回答

1

一個Twitter的exchangeSayed帶領我到他的a blog post,其中記錄的方式來解決該問題在Visual Studio 2012及以上(2010年不支持,遺憾的是)。

確定發佈進程將上載哪些文件的默認方法是使用文件時間戳,無論出於何種原因,這都會導致我們看到的問題。

還有一種使用校驗和而不是時間戳的方法。要使用校驗和方法,包括下列屬性組中的.csproj文件上面的Microsoft.WebApplication.targets進口的任何地方:

<PropertyGroup> 
    <MSDeployUseChecksum>true</MSDeployUseChecksum> 
</PropertyGroup> 

有一個短暫的延遲,同時計算並比較校驗,但它不是等待所有文件要快很多出版。