0

asp.net プロジェクトがあり、Web インストーラーを作成しました。セットアップ exe/msi は、インストール ユーザーが選択したディレクトリにそのプロジェクトをコピーし、そのプロジェクト用のアプリケーションを作成します。

asp.net アプリケーションが (インストーラーで) インストールされたパスを取得するにはどうすればよいですか? Windows サービスはこの Web プロジェクトのディレクトリを監視する必要があるため、ASP.net アプリケーションの物理パスをレジストリに書き込みたいのですが、Web プロジェクトがどこにインストールされているかを認識していない限り、それを行うことはできません。

Webinstaller プロジェクトは、この値をレジストリに自動的に書き込みますか?

4

2 に答える 2

1

次のことが可能です:

setup プロジェクトを右クリックし、コンテキスト メニューから [View] -> [Registry] を選択します。
HKEY_Local_Machine を右クリックし、新しいキーを追加して、Software という名前を付けます。
ソフトウェアを右クリックし、新しいキーを追加して、「MyCompanyName」と呼びます。
MyCompanyName を右クリックし、コンテキスト メニューから new->String を選択し、インストール フォルダと呼びます。
installationFolder キーを左クリックし、プロパティ値を [TARGETDIR] に設定します。
追加の文字列キーを追加し、バージョンと呼び

、[] を含む値 [ProductVersion] を指定します。



x64 では、 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\YourCompany] の下の regedit にレジストリ キーがあります。


ただし、プログラムでは、通常のプロジェクトおよび Web プロジェクトから、
My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\YourCompanyName", "Installation Folder", Nothing)を使用して、通常どおり読み取ることができます。

于 2009-12-16T11:49:44.997 に答える
0

残念だけど違う; IIS は、レジストリ以外の手段を使用してその構成を格納します。

IIS4、IIS5、および IIS6 については、IIS メタベースを調べる必要があります。これは、Windows フォルダ内の XML ファイルですsystem32\inetsrv\Metabase.xml。これは XML であるため、直接読み取って必要な情報を見つけることができます。

IIS7 はメタベースを使用しなくなりました。代わりに、IIS 構成に対するマネージ API の詳細については、こちらを参照してください。

そのため、アプリケーションを修正して、これらの場所のいずれかで必要なディレクトリ情報を探すのが最善の方法であることがわかる場合があります。

于 2009-12-15T14:59:06.763 に答える