3

我有一个关于如何在部署期间替换源清单中提供程序的属性值的 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 属性值。需要完全访问权限的用户因环境而异。我有一个非常糟糕的解决方法,我有点尴尬,所以我希望有一种巧妙的方法来做到这一点。我尝试使用 msdeploy 的-declareParam/-setParam以及 -replace 命令,但似乎无法找出可行的方法。我希望DeploymentObjectAttribute参数种类可能会导致某些事情。

谢谢!

4

0 回答 0