我使用WiX创建的安装程序使用SystemFolder变量安装DLL,以及将C#应用程序安装到另一个文件夹中.我想直接从应用程序引用DLL.我需要查找注册表项才能找到SystemFolder在哪里吗?
解决方法
不,您不需要查询注册表.
Windows Installer具有一系列内置属性,可自动解析为特殊的知名位置,如SystemFolder.
有关更多的一般信息,请参阅System Folder Properties.对于WiX,只需创建一个Directory元素作为TARGETDIR目录元素的直接子代:
<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" );