«SystemFolder» в WIX и C # - PullRequest
       37

«SystemFolder» в WIX и C #

10 голосов
/ 30 марта 2012

Установщик, который я создал с помощью WiX, устанавливает DLL с помощью переменной SystemFolder, а также приложение C # в другую папку.Я хочу напрямую ссылаться на DLL из приложения.Нужно ли искать ключи реестра, чтобы найти, где находится SystemFolder

1 Ответ

14 голосов
/ 30 марта 2012

Нет, вам не нужно запрашивать реестр.Установщик Windows имеет ряд встроенных свойств, которые автоматически разрешаются в специальные общеизвестные местоположения, такие как SystemFolder.

См. Свойства системной папки для получения более общей информации.Для WiX просто создайте элемент Directory как прямой дочерний элемент элемента TARGETDIR Directory:

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

Если вы уже знаете это и хотите узнать, как ссылаться на DLL из C #, SystemFolder находится в пути поискапоэтому я не уверен, почему ты должен.Если бы это был я, я бы скомпилировал C # как x86 (AnyCPU сейчас немного не в моде) и использовал бы:

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