【问题标题】:"SystemFolder" in WIX and C#WIX 和 C# 中的“SystemFolder”
【发布时间】:2012-03-30 09:55:12
【问题描述】:

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

【问题讨论】:

    标签: c# path installation wix system32


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多