WIX和C#中的"SystemFolder"

Tom*_*ies 10 c# installer wix path system32

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

Chr*_*ter 14

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

有关更多常规信息,请参阅系统文件夹属 对于WiX,只需创建一个Directory元素作为TARGETDIR Directory元素的直接子元素:

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="SystemFolder" Name="SystemFolder" />
</Directory>
Run Code Online (Sandbox Code Playgroud)

如果你已经知道这一点并想知道如何从C#引用DLL,那么SystemFolder就在搜索路径中,所以我不确定你为什么要这么做.如果是我,我会将C#编译为x86(AnyCPU现在有点不流行)并使用:

string myDllPath = Path.Combine( System.Environment.SystemDirectory, "my.dll" );
Run Code Online (Sandbox Code Playgroud)