部署Web应用程序时跳过未更改文件的MSbuild选项

时间:2016-02-10 12:01:50

标签: visual-studio-2012 tfs msbuild

当我从visual studio部署我的.net Web应用程序时,我正在寻找解决方案。它应该只部署更改的文件。

我尝试使用构建TFS 2012但无法找到解决方案。我还审查了增量构建,但无法找到确切的解决方案。

然后我搜索了MSbuild选项以添加.wpp.targets文件以排除文件和文件夹,这是正常工作但在这种情况下我必须手动提及文件才能从构建中排除。

然后我发现MSbuild属性SkipUnchangedfiles,我已经通过了MSDN链接,但它无法正常工作。

如何实现仅部署已更改文件的此功能?

1 个答案:

答案 0 :(得分:2)

您不必单独忽略文件/文件夹。默认情况下,WebDeploy / MSDeploy仅部署“已更改”。 WebDeploy默认检查时间戳以识别已更改的文件。如果您尝试将同一个软件包部署两次,您将看到它将部署所有文件,然后在第二次运行时没有文件。问题是每个构建都会更新文件的Dateime戳并创建一个新包。因此,即使是未更改的文件也会因为新的时间戳而被标记为新文件。

还有第二个选项,WebDeploy将使用校验和值而不是datetime。您可以添加-useChecksum WebDeploy标志以使用第二种方法。

或者从MSBuild中添加/p:MSDeployUseChecksum=true参数,它将设置MSDeploy标志。

或者从wpp.targets文件中添加以下属性:

<MSDeployUseChecksum>true</MSDeployUseChecksum>