使用setParamFile

时间:2017-04-16 10:57:48

标签: powershell msdeploy tfs2017

我正在使用MSDeploy作为TFS2017(Update 1)中自定义任务的一部分,但我无法使用setParamFile选项。它抛出了两个错误之一。如果我没有指定路径,则表示“找不到文件”(参见下面的跟踪)。如果我在构建计算机上指定文件的路径,则表示无效路径。

我确信这简直令人难以置信,但它让我受到了打击,Google曾经一度不是我的朋友!非常感谢任何帮助。

我提供的日志不变,因为所有这些仅在内部服务器上。如果没有setParamFile参数,它可以很好地部署,而不会更新我正在尝试更新的变量连接字符串。

2017-04-15T22:41:13.5065833Z Executing the powershell script: D:\BuildAgent\tasks\MSDeployPackageMultiSync\1.1.16\MSDeployPackageSync.ps1 2017-04-15T22:41:13.6472111Z packageFile= Find-Files -SearchPattern D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.zip 2017-04-15T22:41:13.6472111Z packageFile= D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.zip 2017-04-15T22:41:13.6784674Z DCA_API.SetParameters.xml 2017-04-15T22:41:13.7097114Z Package= D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.zip 2017-04-15T22:41:13.7097114Z ParamFile= -setParamFile:'DCA_API.SetParameters.xml' 2017-04-15T22:41:13.7097114Z DestinationProvider= auto 2017-04-15T22:41:13.7097114Z DestinationComputer= prerelweb3,prerelweb4 2017-04-15T22:41:13.7097114Z Username= 2017-04-15T22:41:13.7097114Z AdditionalArguments= 2017-04-15T22:41:13.7253453Z Deploying package to prerelweb3,prerelweb4 2017-04-15T22:41:13.7253453Z Deploying to prerelweb3 2017-04-15T22:41:13.7253453Z "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package='D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.zip' -setParamFile:'DCA_API.SetParameters.xml' -dest:auto,computerName='prerelweb3',userName='',password='',authType='ntlm',includeAcls='False' -setParam:name='IIS Web Application Name',value='WebServices (Secure)\FormsAdmin' -setParam:kind=DestinationVirtualDirectory,scope='WebServices (Secure)\\FormsAdmin',value='e:\cabi_sites\WebServices_Secure\FormsAdmin' -allowUntrusted **2017-04-15T22:41:14.1315861Z ##[error]System.Management.Automation.RemoteException: Error: Could not find file ''DCA_API.SetParameters.xml''.** 2017-04-15T22:41:14.1315861Z ##[error]System.Management.Automation.RemoteException: Error count: 1. 2017-04-15T22:41:14.1315861Z Deployment to prerelweb3 complete 2017-04-15T22:41:14.1315861Z Deploying to prerelweb4 2017-04-15T22:41:14.1315861Z "C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe" -verb:sync -source:package='D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.zip' -setParamFile:'DCA_API.SetParameters.xml' -dest:auto,computerName='prerelweb4',userName='',password='',authType='ntlm',includeAcls='False' -setParam:name='IIS Web Application Name',value='WebServices (Secure)\FormsAdmin' -setParam:kind=DestinationVirtualDirectory,scope='WebServices (Secure)\\FormsAdmin',value='e:\cabi_sites\WebServices_Secure\FormsAdmin' -allowUntrusted **2017-04-15T22:41:14.4909648Z ##[error]System.Management.Automation.RemoteException: Error: Could not find file ''DCA_API.SetParameters.xml''.** 2017-04-15T22:41:14.4909648Z ##[error]System.Management.Automation.RemoteException: Error count: 1. 2017-04-15T22:41:14.4909648Z Deployment to prerelweb4 complete

1 个答案:

答案 0 :(得分:1)

我假设您正在使用此任务:MSDeployAllTheThings。根据日志,您正在使用Release。因此,您需要确保在构建期间将“DCA_API.SetParameters.xml”文件发布到工件删除,并在发布期间也正确下载。然后,您需要在Additional Arguments中输入绝对路径,以便任务可以找到该文件。对于您的方案,如果“DCA_API.SetParameters.xml”文件与“DCA_API.zip”文件放在同一文件夹中,则需要使用此文件:

-setParamFile:"D:\BuildAgent\_work\194fdc7b9\Data Collection App - Release\drop\_PublishedWebsites\Cabi.FormsAdmin.Api_Package\DCA_API.SetParameters.xml"

我尝试了绝对的路径,并没有看到任何问题。