12

私が WiX で作成したインストーラーは、SystemFolder変数を使用して DLL をインストールし、C# アプリを別のフォルダーにインストールします。アプリからDLLを直接参照したい。の場所を見つけるためにレジストリ キーを検索する必要がありますSystemFolderか?

4

1 に答える 1

16

いいえ、レジストリを照会する必要はありません。Windowsインストーラには、SystemFolderなどのよく知られた特別な場所に自動的に解決される一連の組み込みプロパティがあります。

より一般的な情報については、システムフォルダのプロパティを参照してください。WiXの場合、TARGETDIRDirectory要素の直接の子としてDirectory要素を作成するだけです。

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="SystemFolder" Name="SystemFolder" />
</Directory>

これをすでに知っていて、C#からDLLを参照する方法を知りたい場合は、SystemFolderが検索パスにあるため、なぜそうする必要があるのか​​わかりません。私の場合は、C#をx86としてコンパイルし(AnyCPUは現在流行していません)、次を使用します。

string myDllPath = Path.Combine( System.Environment.SystemDirectory, "my.dll" );
于 2012-03-30T10:43:27.617 に答える