2012-03-30 11 views
9

Un instalador que he creado con WiX instala una DLL usando la variable SystemFolder, así como una aplicación C# en otra carpeta. Quiero hacer referencia directamente a la DLL desde la aplicación. ¿Debo buscar las claves de registro para encontrar dónde está el SystemFolder?"SystemFolder" en WIX y C#

Respuesta

13

No, no necesita consultar el registro. Windows Installer tiene una serie de propiedades integradas que se resuelven automáticamente en ubicaciones especiales conocidas, como SystemFolder.

Ver System Folder Properties para obtener más información. Para WiX, basta con crear un elemento Directory como un hijo directo del elemento Directorio TARGETDIR:

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

Si ya lo sabe y quiere saber cómo hacer referencia a la DLL de C#, SystemFolder está en la ruta de búsqueda por lo que No estoy seguro de por qué tendrías que hacerlo. Si fuera yo, compilaría el C# como x86 (AnyCPU está un poco fuera de moda ahora) y usaré:

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