我需要将我的 COM dll 部署为 COM+ 应用程序。我曾经从组件服务管理器 (dcomcnfg.exe) 执行此操作。但我的要求是从命令行部署它。有没有命令可以做到这一点?
更新:以及如何卸载相同?
谢谢。
我需要将我的 COM dll 部署为 COM+ 应用程序。我曾经从组件服务管理器 (dcomcnfg.exe) 执行此操作。但我的要求是从命令行部署它。有没有命令可以做到这一点?
更新:以及如何卸载相同?
谢谢。
这里有几个脚本可以将 COM+ 应用程序的设置转储到 XML 文件,以及从 XML 文件安装应用程序。它为我提供了一个很好的框架来做类似的事情。它包含有关如何使用 COM+ 管理 API 创建和删除 COM+ 应用程序的示例代码。
这个 vbscript 片段创建一个应用程序并安装一个组件:
Dim catalog
Dim applications
Dim application
Set catalog = CreateObject("COMAdmin.COMAdminCatalog")
Set applications = catalog.GetCollection("Applications")
Call applications.Populate
Set application = applications.Add()
' ID is an arbitrary GUID, that you can create using uuidgen
application.Value("ID") = "{da2d72e3-f402-4f98-a415-66d21dafc0a9}"
application.Value("Name") = "SampleApp"
application.Value("Activation") = 0' COMAdmin.COMAdminActivationOptions.COMAdminActivationLocal
application.Value("ApplicationAccessChecksEnabled") = 0 'COMAdmin.COMAdminAccessChecksLevelOptions.COMAdminAccessChecksApplicationComponentLevel
application.Value("Description") = "Sample Application"
'application.Value("Identity") = "machine\administrator"
'application.Value("Password") = "YourPassword"
application.Value("RunForever") = True
Call applications.SaveChanges
catalog.InstallComponent "SampleApp", "C:\Documents and Settings\me\My Documents\Test\MyTestProj.dll", "", ""
Set application = Nothing
Set applications = Nothing
Set catalog = Nothing
这是在 Windows XP 上运行的——其他操作系统可能有不同的行为。而且看起来确实很有气质。如果它不起作用,则错误非常模糊且无益。
要删除,我认为您必须遍历应用程序中的组件并按照此示例从列表中删除。我认为删除整个应用程序需要类似的方法。
参考
请参阅配置 COM+以获得一篇易于理解的好文章(但不在脚本中)。MSDN 对自动化 COM+ 管理有很好的参考,也有完整的COM+ 管理参考。