6

COMdllをCOM+アプリケーションとしてデプロイする必要があります。以前は、コンポーネントサービスマネージャー(dcomcnfg.exe)からこれを実行していました。しかし、私の要件は、コマンドラインからデプロイすることです。それを行うためのコマンドはありますか?

更新:そして、同じものをアンインストールする方法は?

ありがとう。

4

2 に答える 2

7

以下に、COM +アプリケーションの設定をXMLファイルにダンプし、XMLファイルからアプリケーションをインストールするスクリプトをいくつか示します。それは私にしばらく前に似たようなことをするための良いフレームワークを提供してくれました。これには、COM+管理APIを使用してCOM+アプリケーションを作成および削除する方法のサンプルコードが含まれています。

于 2010-06-23T15:35:02.510 に答える
0

この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

これはWindowsXPで実行されています。他のOSでは動作が異なる場合があります。そして、それはかなり気まぐれなようです。それが機能しない場合、エラーは本当に曖昧で役に立たないです。

削除するには、この例のように、アプリケーション内のコンポーネントを繰り返し処理し、リストから削除する必要があると思います。アプリケーション全体を削除するには、同様のアプローチが必要になると思います。

参考文献

わかりやすい記事については、COM +の構成を参照してください(ただし、スクリプトには含まれていません)。MSDNには、COM +管理の自動化に関する優れたリファレンスと、完全なCOM+管理リファレンスがあります。

于 2010-05-10T22:49:49.403 に答える