我有一个msdeploy问题,关于如何在部署期间替换源清单中的提供程序的属性值。
我使用msdeploy在发布版本期间创建部署包。我希望这些软件包适合部署到测试/登台/生产,并且需要能够更改配置值部署时间。在部署期间需要完成的事情之一是创建消息队列(msmq),这是msdeploy不支持开箱即用的东西(从技术上讲,你可以使用脚本并让msdeploy调用它,但这并不好玩)。我已经为msdeploy创建了一个自定义提供程序,使我能够在部署期间创建这些消息队列(msmq)。要创建哪些队列以及有关它们的一些设置,请在sourceManifest.xml文件中指定,该文件如下所示:
<sitemanifest>
<msmq path=".\private$\some.application/SomeService.svc" isTransactional="True" shouldGrantNetworkServicePeekWrite="True" userNameToGrantFullAccess="testdomain\username" />
<!-- more (non-relevant) stuff here -->
</sitemanifest>
源清单中的内容会嵌入到包本身中。
如何替换提供商的属性值?
具体来说,我需要替换userNameToGrantFullAccess属性值。需要完全访问权限的用户因环境而异。我有一个非常hacky的解决方案,我有点尴尬,所以我希望有一个简洁的方法来做到这一点。我已经尝试过使用msdeploy的 -declareParam / -setParam 以及-replace命令,但似乎无法找出有效的方法。我希望 DeploymentObjectAttribute 参数类型可能会导致某种情况。
谢谢!