2012-03-30 53 views
9

我用WiX創建的安裝程序使用SystemFolder變量以及C#應用程序將DLL安裝到另一個文件夾中。我想直接從應用程序引用DLL。我是否需要查找註冊表項以查找SystemFolder的位置?WIX和C#中的「SystemFolder」#

回答

13

不,您不需要查詢註冊表。 Windows Installer具有一系列內置屬性,可以自動解析爲特殊的已知位置,如SystemFolder。

有關更多一般信息,請參見System Folder Properties。對於維克斯,只需創建一個目錄元素作爲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");