2011-01-20 8 views
0

setUpプロジェクトをMy C#windowsアプリケーションに追加しました。しかし、それをシステムレジストリに登録しなかった。それはそれは1がfollowinの手順に従わなければならシステムレジストリに登録するために私に夜が明けた:Similiarlyアンイメソッドをオーバーライドしするために、次のコードを追加しC#Windowsアプリケーション用のsetUpプロジェクトを作成する際に、インストールされた製品の詳細をSystem Registryに追加する方法とその理由

public override void Install(System.Collections.IDictionary stateSaver) 
{ 
    base.Install(stateSaver); 
    RegistrationServices regSrv = new RegistrationServices(); 
    regSrv.RegisterAssembly(base.GetType().Assembly, 
    AssemblyRegistrationFlags.SetCodeBase); 
} 

: 私は、次のコードで「インストール」メソッドをオーバーライド。

public override void Uninstall(System.Collections.IDictionary savedState) 
{ 
    base.Uninstall(savedState); 
    RegistrationServices regSrv = new RegistrationServices(); 
    regSrv.UnregisterAssembly(base.GetType().Assembly); 
} 

&アンインストール方法をインストールするには、上記のコードスニペットを追加するには、この罰金です。レジストリ操作がシステムクラッシュにつながる可能性があるので、私はこれをしなかった。

誰かが親切に私は、システムレジストリで インストールを登録する 正確な手順を知らせることができます。
また、インストール中に登録することの利点は何ですか。

私はコーディング中にレジストリ操作にまったく新しいです。私は、レジストリ、registry_key、GUID、ClassId、およびレジストリの操作に関連する他の重要なセールを意味するものの基礎から学びたいと思います。誰でも親切に私にこれのためのいくつかの資料を提案することができます。 ありがとうございました。

答えて

1

アセンブリをレジストリに登録する理由の1つは、アセンブリを使用する古いCOMスタイルのアプリケーションに公開するためです。そのような具体的な必要性がない限り、私の意見ではレジストリをまったくばかげたことを避けるべきです。

アプリケーションアセンブリが共有されていない場合は、登録する必要はありません。 他の.NETアプリケーションと共有されている場合は、GAC経由で行うことをお勧めします。

+0

レジストリにWindowsアプリケーションのインストールを登録する必要がある場合は、上記のコードスニペットを使用するのが適切です。 – codeLover

+0

@engineerMaster - あなたが上で与えたこのコードスニペットは、私には大丈夫です。しかし、これまで私が使っていなかったので、私はあなたの質問のその側面についてコメントしなかった。 – InSane

関連する問題