Получить имя производителя из установки - PullRequest
1 голос
/ 20 июня 2011

В .NET при создании проекта установки файлы приложения сохраняются по пути, аналогичному следующему:

C:\Program Files\[Manufacturer]\[Product Name]

Я создаю папку внутри общих данных приложенияпоэтому я могу читать / писать на Win 7 без прав администратора, поэтому я также создал папку по этому пути:

C:\ProgramData\[Manufacturer]\[Product Name]

Каков наилучший способ получить этот путь в коде, чтобы яможно читать / записывать в эту папку?

Я мог бы просто поместить имя производителя в постоянную строку и синхронизировать ее.Или я мог бы добавить его в манифест сборки одного из проектов.Или я мог бы попытаться сохранить его в файл во время установки?

Есть предложения?

Ответы [ 2 ]

1 голос
/ 20 июня 2011

Не думаю, что в настройке я бы сделал что-то кроме создания каталога.Позвольте приложению управлять доступом к каталогу во время выполнения.

Я бы сохранил ваше имя производителя и продукта в файле конфигурации или жестко закодированную константу в вашем коде.Вы могли бы также сделать какое-то размышление, чтобы найти его на сборке, но это слишком для меня.

Для каталога ProgramData используйте переменную среды% ALLUSERSPROFILE%, чтобы получить местоположение.Таким образом, он будет работать во всех версиях Windows.

Затем объедините переменную среды и имя производителя / продукта для создания всего каталога.

0 голосов
/ 20 июня 2011

Скорее всего, вы захотите заглянуть в Context экземпляра установщика, чтобы сохранить путь, а затем найти его в Parameters.

Вам нужно будет установить значение CustomActionData для соответствующего пути (например, /TargetDir="[TARGETDIR]" или любых других таких переменных, которые доступны и желательны).

Затем вкод и, при необходимости, захватить путь из свойства Parameters Context, как указано выше:

var path Context.Parameters.Item("TargetDir")
...