12

我使用 WiX 创建的安装程序使用该SystemFolder变量安装 DLL,并将 C# 应用程序安装到另一个文件夹中。我想直接从应用程序中引用 DLL。我是否需要查找注册表项才能找到它的SystemFolder位置?

4

1 回答 1

16

不,您不需要查询注册表。Windows Installer 具有一系列内置属性,可自动解析到众所周知的特殊位置,例如 SystemFolder。

有关更多一般信息,请参阅系统文件夹属性。对于 WiX,只需创建一个 Directory 元素作为 TARGETDIR 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 回答