WIX和C#中的“SystemFolder”

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

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

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

    

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

 string myDllPath = Path.Combine( System.Environment.SystemDirectory, "my.dll" );