Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Visual Studio 2012一键发布发布所有文件(不仅仅是更新)_Asp.net Mvc_Visual Studio_Asp.net Mvc 4_Visual Studio 2012_Publish - Fatal编程技术网

Asp.net mvc Visual Studio 2012一键发布发布所有文件(不仅仅是更新)

Asp.net mvc Visual Studio 2012一键发布发布所有文件(不仅仅是更新),asp.net-mvc,visual-studio,asp.net-mvc-4,visual-studio-2012,publish,Asp.net Mvc,Visual Studio,Asp.net Mvc 4,Visual Studio 2012,Publish,根据Visual Studio中的一键发布功能 第一次发布时,运行应用程序所需的所有文件都会复制到宿主提供商。发布更新时,仅复制更改的文件 在我们的环境中(Visual Studio 2012中的ASP.NET MVC 4,如果有必要的话),如果我是第一个发布web应用程序的人,所有文件都会发布。如果我进行了更新,然后再次发布,则只会发布更新 到目前为止,一切顺利 但是,如果其他开发人员随后发布,则会发布所有文件(包括未更改的文件)。他们可以进行更新和发布,并且只发布更改。但如果我再次发布,所有

根据Visual Studio中的一键发布功能

第一次发布时,运行应用程序所需的所有文件都会复制到宿主提供商。发布更新时,仅复制更改的文件

在我们的环境中(Visual Studio 2012中的ASP.NET MVC 4,如果有必要的话),如果我是第一个发布web应用程序的人,所有文件都会发布。如果我进行了更新,然后再次发布,则只会发布更新

到目前为止,一切顺利

但是,如果其他开发人员随后发布,则会发布所有文件(包括未更改的文件)。他们可以进行更新和发布,并且只发布更改。但如果我再次发布,所有文件(包括未更改的文件)都将发布

基本上,每当项目由最近发布的人以外的人发布时,所有文件(包括未更改的文件)都会发布。

  • 这种行为是出于某种原因故意的吗
  • 是否有任何方法可以阻止它(这样无论发布的是谁,都只发布更新)
  • 我在推特上看到了他的一篇文章,其中记录了在VisualStudio2012及以后解决这个问题的方法(遗憾的是,2010年没有支持)

    确定发布过程将上载哪些文件的默认方法使用文件时间戳,无论出于何种原因,这都会导致我们看到的问题

    还有一种替代方法,它使用校验和而不是时间戳。要使用校验和方法,请在
    Microsoft.WebApplication.targets
    导入上方的
    .csproj
    文件中的任意位置包含以下属性组:

    <PropertyGroup>
        <MSDeployUseChecksum>true</MSDeployUseChecksum>
    </PropertyGroup>
    
    
    真的
    
    在计算和比较校验和时会有短暂的延迟,但这比等待所有文件发布要快得多