Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.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
Visual studio 2012 MSDeploy publish通过MSBuild复制所有文件,而不是同步文件 我有下面的构建目标集来执行我的部署,正如汉塞尔曼在他的文章中提到的,并且在许多其他地方也提到了我认为的推荐方法: msbuild my_web_application.csproj /p:Configuration=Production; DeployOnBuild=true; PublishProfile=Production; VisualStudioVersion=11.0; AllowUntrustedCertificate=true; AuthType=NTLM_Visual Studio 2012_Web Deployment_Msdeploy_Msbuild 4.0 - Fatal编程技术网

Visual studio 2012 MSDeploy publish通过MSBuild复制所有文件,而不是同步文件 我有下面的构建目标集来执行我的部署,正如汉塞尔曼在他的文章中提到的,并且在许多其他地方也提到了我认为的推荐方法: msbuild my_web_application.csproj /p:Configuration=Production; DeployOnBuild=true; PublishProfile=Production; VisualStudioVersion=11.0; AllowUntrustedCertificate=true; AuthType=NTLM

Visual studio 2012 MSDeploy publish通过MSBuild复制所有文件,而不是同步文件 我有下面的构建目标集来执行我的部署,正如汉塞尔曼在他的文章中提到的,并且在许多其他地方也提到了我认为的推荐方法: msbuild my_web_application.csproj /p:Configuration=Production; DeployOnBuild=true; PublishProfile=Production; VisualStudioVersion=11.0; AllowUntrustedCertificate=true; AuthType=NTLM,visual-studio-2012,web-deployment,msdeploy,msbuild-4.0,Visual Studio 2012,Web Deployment,Msdeploy,Msbuild 4.0,这就完成了任务,并通过在命令行上调用ms deploy替代了我之前的部署步骤: msdeploy.exe" -source:package="c:\source_to_my_web_application.zip" -dest:auto,my_server_name,includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateE

这就完成了任务,并通过在命令行上调用ms deploy替代了我之前的部署步骤:

msdeploy.exe" -source:package="c:\source_to_my_web_application.zip" -dest:auto,my_server_name,includeAcls="False" -verb:sync -disableLink:AppPoolExtension -disableLink:ContentExtension -disableLink:CertificateExtension -setParamFile:"c:\source_to_my_web_application\Package.SetParameters.xml"
我在这两种方法中看到的最大区别是,命令行调用只会推送有修改的文件,而msbuild调用每次都会发送整个web应用程序


有没有办法让msbuild版本执行“同步”行为,就像直接调用msdeploy为我所做的那样?

根据我所能建立的,从包(如为此特定msbuild命令创建的包)进行同步将发现与试图从中部署的本地工作副本相关的差异

如果我重新签出,然后构建和部署,它将发布整个web应用程序

如果我对该工作副本执行清理和重建,它将只发布重建的DLL

如果我在此基础上进行构建,它只会发布转换后的web.config文件和其他一些我无法理解的随机DLL

我想,底线是,在我们的CI服务器设置中,应该假设所有文件都将发布到服务器上,如果发布的文件少于此数量,则会增加带宽

作为补充说明,在执行正常的ms部署命令时,我还遇到了随机的、不可靠的404错误。它们似乎是间歇性的,在我自己的工作站、同事和CI服务器之间可能会有所不同,因此MS Deploy服务将在每次连续调用后的几秒钟内返回404或正常执行。我为这种行为找到的解决方案包括从重新启动Visual Studio到卸载和重新安装各种组件,并确保按照正确的顺序进行操作,并且只在任何月份第三周的第二个星期二(以“ary”结尾)

对我来说,这是一个粗略的工具,如果你能得到一个可靠的设置,这是一个奇迹,你不应该再碰它,并向硅神祈祷它保持这种状态