我正在使用MSDeploy移动很多IIS网站,我遇到了一个问题,我试图将3个注册表项作为移动的一部分,但是每个网站上并不总是存在所有3个注册表项。 / p>
所以问题是:有没有办法让MSDeploy移动注册表项,如果它们在源代码上,并且如果它们不存在则默默地跳过它们?
我尝试过强制启用和禁用SkipInvalidSource规则,但它似乎没有影响这个问题。
还有一个最后的注释,我正在使用源文件的清单文件(其中包含3个regKey提供程序的条目)。
答案 0 :(得分:0)
这里的信息不够充分:
一般而言......您需要确保在使用regKey提供程序之前使用它:
我确定你已经看过这个,但以下是2个可能有帮助的参考文献:
SkipInvalidSource(跳过无效的来源规则)[0.50]
如果找不到数据源,则跳过来自提供程序的数据同步(例如,使用regKey提供程序并且指定的注册表项不存在)。默认情况下启用此规则。
<强>注意:强> 注册表项和值的ACL在同步操作中保留,但注册表中的某些路径可能需要管理员权限。如果提供程序没有访问您指定的注册表项所需的权限,则提供程序将失败。
以下是不删除源包中不存在的目标上的注册表项的示例。
msdeploy -verb:sync -source:package=C:\package.zip -dest:webServer,computerName=DestServer -skip:skipAction=Delete,objectName=regKey