2012-03-30 15 views
9

Un programma di installazione che ho creato con WiX installa una DLL utilizzando la variabile SystemFolder e un'app C# in un'altra cartella. Voglio fare direttamente riferimento alla DLL dall'app. Devo cercare le chiavi di registro per trovare dove è lo SystemFolder?"SystemFolder" in WIX e C#

risposta

13

No, non è necessario interrogare il registro. Windows Installer dispone di una serie di proprietà integrate che si risolvono automaticamente in posizioni speciali note come SystemFolder.

Vedere System Folder Properties per ulteriori informazioni generali. Per WiX, basta creare un elemento Directory come figlio diretto dell'elemento Directory TARGETDIR:

<Directory Id="TARGETDIR" Name="SourceDir"> 
    <Directory Id="SystemFolder" Name="SystemFolder" /> 
</Directory> 

Se si conosce già questo e volete sapere come fare riferimento la DLL da C#, SystemFolder è nel percorso di ricerca in modo da non sono sicuro del perché tu debba. Se fossi stato io, avrei compilato il C# come x86 (AnyCPU è un po 'fuori moda ora) e uso:

string myDllPath = Path.Combine(System.Environment.SystemDirectory, "my.dll");