#c#-4.0 #registry #setup-project
#c #-4.0 #реестр #установка-проект
Вопрос:
У меня есть проект установки, он работает нормально, по крайней мере, пару лет. Недавно я добавил в микс новый проект, winform. Мне потребовалось много поисков в Google и исследований, чтобы заставить его работать — большое спасибо множеству статей, которые я нашел во время моего «приключения».
Этот новый проект позволяет мне щелкнуть правой кнопкой мыши файл в проводнике и добавить его в свою систему. Я могу установить проект нормально, файлы добавляются / копируются в нужное место. Код в порядке, делает именно то, что я ему сказал.
По какой-то причине редактор реестра и база данных регистрации Windows не согласуют ключи.
Редактор реестра утверждает, что я должен иметь HKCR*shellAdd to systemcommand
, и строковый ключ, говорящий
Name: (Default)
Value: "[TARGETDIR]mySystemAddFileForm "%1"
Sofar так хорошо, да, Windows reg db также считает, что путь правильный. Да, есть «но». По какой-то причине Windows reg db считает, что должен быть 2-й строковый ключ, говорящий
Name: (Default)
Value: null
Окна имеют приоритет и портят мою логику (дизайн, код, идея).
Если я вручную это исправлю, я могу просто щелкнуть правой кнопкой мыши файлы и добавить их в систему. Просто для ясности. Да, в проводнике есть опция щелчка правой кнопкой мыши с надписью «Добавить в систему», и да, после того, как я отредактирую regedit вручную, он работает, когда я нажимаю на него.
Прежде чем я изменил его в редакторе реестра, у меня была генерация ключей в CustomSetupActions, но я не мог сделать это, если пользователь решил отредактировать папку установки. Из default [programfiles] (c:Program Files ..) к тому, что пользователь решил в момент установки.
Под редактором реестра я подразумеваю тот, который находится в проекте установки, View / Registry.
Как я могу сказать Windows, чтобы она оставалась в курсе моего точно настроенного кода и позволяла мне решать, какие reg-ключи создаются, когда и где.
Отредактировано: (стандартно) на (по умолчанию). Windows может переводить (по умолчанию) на местный язык. Оставьте его по умолчанию.
Комментарии:
1. Под «(стандартным)» вы подразумеваете (по умолчанию) запись реестра? Кроме того, в вашем значении реестра отсутствует кавычка после пути к файлу.
2. Да Стандарт == По умолчанию. Вот дополнительный «.
Ответ №1:
Установщик Windows может устанавливать значения по умолчанию, и обычно они не переопределяются автоматически Windows.
Чтобы установить значение по умолчанию в проекте установки Visual Studio, убедитесь, что поле Name пустое: http://msdn.microsoft.com/en-us/library/windows/desktop/aa371168 (v= против 85).aspx
Обычно этого достаточно. Если после установки значение не соответствует ожидаемому, попробуйте создать подробный журнал установки, чтобы посмотреть, что происходит во время установки. Скорее всего, запись реестра пропущена или записана где-то еще.
Комментарии:
1. Ах, да, вы что-то говорите. На самом деле я написал слово «Стандартный», когда я удалил, что оно вернулось к «Умолчанию». Windows, вероятно, пропустила бы значение «По умолчанию», поэтому она создала его и перевела в «Стандартный». Позвольте мне собрать и протестировать, в противном случае, похоже, забил этот. Приветствия, приятель.