dth*_*her 13 msdeploy webdeploy
我有一个Web Deploy 3.5软件包,我想部署到远程服务器.如何在MSDeploy.exe命令行上指定站点的名称?
这是我到目前为止所拥有的:
C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe
-source:package='package.zip'
-dest:auto,computerName="ServerName",includeAcls="False"
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"package.SetParameters.xml"
Run Code Online (Sandbox Code Playgroud)
但是该文件的名称是在package.SetParamters.xml文件中指定的,我更喜欢在命令行中设置它.我想部署此软件包的一些地方是位于同一服务器上的不同站点,例如我们的Stage和UAT站点.
我已经看过使用这里描述的iisApp和appHostConfig提供程序:http://technet.microsoft.com/en-us/library/dd569040%28v=ws.10%29.aspx
但是我在将这些与包文件结合使用时遇到了麻烦.
Ric*_*lay 21
您可以使用setParam以下方式覆盖它
msdeploy.exe
-source:package='package.zip'
-dest:auto,computerName="ServerName",includeAcls="False"
-verb:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-setParamFile:"package.SetParameters.xml"
-setParam:name="IIS Web Application Name",value="site name"
Run Code Online (Sandbox Code Playgroud)
Sco*_*nro 13
要在Powershell中做同样的事情(参见Richard Szalay的回答),你必须对命令行参数处理有点小心 - 特别是涉及空格的地方.我发现最好将它们作为一个数组传递,其中所需的命令行参数在空格字符上有效地分割.请注意,下面的行以逗号分隔,并且分割参数名称"IIS Web Application".我把那个放在一行上以提高可读性.
$msdeploy = "C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe";
$msdeployArguments =
'-source:package="package.zip"',
'-dest:auto,computerName="<ServerName>",includeAcls="False"',
'-verb:sync',
'-disableLink:AppPoolExtension',
'-disableLink:ContentExtension',
'-disableLink:CertificateExtension',
'-setParam:name="IIS', 'Web', 'Application', 'Name",value="<WebsiteName>"'
& $msdeploy $msdeployArguments
Run Code Online (Sandbox Code Playgroud)
更新
当我回到网站Name的参数化时,我遇到了问题.因为我使用单引号作为字符串,所以我选择使用连接而不是字符串插值.不幸的是,分隔数组中元素的逗号似乎已经在连接之前进行了评估.结果是,不是在数组元素中连接字符串,而是将新元素连接到数组.我的解决方案是使用括号括起数组元素并强制首先执行连接.
$msdeployArguments =
'-source:package="package.zip"',
('-dest:auto,computerName="' + $webServerName + '",includeAcls="True"'),
'-verb:sync',
'-disableLink:AppPoolExtension',
'-disableLink:ContentExtension',
'-disableLink:CertificateExtension',
'-setParam:name="IIS', 'Web', 'Application', ('Name",value="' + $websiteName + '"');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21708 次 |
| 最近记录: |