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

最佳答案

不,您不需要查询注册表。 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" );

关于c# - WIX和C#中的"SystemFolder",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9940731/

10-11 08:45