gpt4 book ai didi

tfsbuild - MSDeploy 批处理文件不再处理引号

转载 作者:行者123 更新时间:2023-12-02 21:01:14 26 4
gpt4 key购买 nike

作为构建过程的一部分,我们使用 MSDeploy 部署 Web 应用程序。直到几周前,这一切都还很完美(我想当我们将构建/TFS 服务器更新到 TFS 2010 的 SP1 时)。

在我们的构建定义中,有一个调用流程的步骤。此过程将调用生成的deploy.cmd 文件并传入几个附加参数。这在很长一段时间内都运行良好,但现在我们得到了这个:

错误:无法识别参数“-skip:objectName=filePath,absolutePath=.*cmsservices.config”。所有参数必须以“-”开头。

如帮助中所述,我们用引号传递附加参数:

WebApplication.deploy.cmd/Y/M:sv-ad-iis02 -allowUntrusted "-skip:objectName=filePath,absolutePath=.*cmsservices.config""-skip:objectName=filePath,absolutePath=.*servicemodel。 client.config""-skip:objectName=dirPath,absolutePath=app_data"

但是,这个技巧不再起作用了。删除引号也会删除所有字符,例如 = 和 ,这些字符将被空格替换。

我将其追溯到(通过将旧的deploy.cmd与新版本进行比较)到这一行:

第 76 行:

@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrentOriginal%

在之前的版本中,这是:

@rem Any addition flags, pass through to the msdeploy
set _ArgMsDeployAdditionalFlags=%_ArgMsDeployAdditionalFlags% %_ArgCurrent%

_ArgCurrentOriginal 使用 %1 而不是 %~1,如果我更改此代码,一切都会再次起作用。然而,deploy.cmd 文件每次都会自动生成(至少看起来是这样)

知道为什么会发生这种变化以及如何处理这个问题吗?

<小时/>

更新;我通过使用环境变量传递这些值来解决这个问题。它仍然没有解决新的deploy.cmd文件以不同的方式转义引号的问题。

我现在放置在部署流程工作流程中的解决方案:

<mtbwa:InvokeProcess Arguments="[String.Format(&quot;/Y /M:{0} -allowUntrusted&quot;, DeploymentServerName)]" DisplayName="Deploy selected Web Application using MSDeploy" EnvironmentVariables="[New Dictionary(Of String, String) From {{&quot;_MsDeployAdditionalFlags&quot;, DeploymentParameters}}]" FileName="[String.Format(&quot;{0}\Packages\{1}\{2} {3}\{4}.deploy.cmd&quot;, BuildDetail.DropLocation, platform.Configuration, ApplicationName, VersionString, DeploymentPackageName)]" sap:VirtualizedContainerService.HintSize="464,420" Result="[ExitCode]">

最佳答案

这是 SP1 版本中引入的错误。您可以通过编辑 %ProgramFiles(x86)%\MSBuild\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets (注意 64 位路径)来解决此问题。更改第3238-3258行以匹配旧deploy.cmd文件中的相应内容;差异应该只有 3 行,删除 _ArgCurrentOriginal 并使用 _ArgCurrent。

最近还发布了一个关于此问题的知识库:http://support.microsoft.com/kb/2537134 。其中包括更新的 .targets 文件,因此您不必自己进行编辑。

关于tfsbuild - MSDeploy 批处理文件不再处理引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5539968/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com