我使用WiX创建的安装程序使用SystemFolder
变量安装DLL,并将C#应用程序安装到另一个文件夹中。我想直接从应用程序中引用DLL。我是否需要查找注册表项以查找SystemFolder
的位置?
答案 0 :(得分:14)
不,您不需要查询注册表。 Windows Installer具有一系列内置属性,可自动解析到特殊的已知位置,例如SystemFolder。
有关更多一般信息,请参阅System Folder Properties。对于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" );