Настройка проекта, настраиваемые действия и проблемы Windows 7 - PullRequest
0 голосов
/ 03 мая 2011

У меня большая проблема с моим Проектом и настройкой, которую я сделал для него. Мое приложение находится в VS2005 и устанавливает файл MDF (SqlExpress 2005) в папку ApplicationData в Windows 7.

Первая проблема, с которой я столкнулся, заключалась в том, что установщик помещает MDF и LDF в папку ApplicationData\MyApplication, разрешения неправильные, и тогда мое приложение не может получить доступ к файлам для подключения к SQL Express.

То, что я сделал, было настраиваемым действием, которое дает всем разрешение (я знаю ... это не очень хорошо). Хорошо, пока мое приложение работает с этим.

Вторая проблема, с которой я сталкиваюсь, заключается в том, что, если пользователь не является учетной записью администратора по умолчанию, при выполнении MSI-файла MSI выдает ошибку 2869 при попытке запустить настраиваемое действие. С этой проблемой я должен заставить пользователя выполнить setup.exe, а не файл MSI. Или, если пользователь выполняет файл MSI, то каким-то образом выполните правильную настройку.

Я прочитал кое-что о скриптах NoImpersonate и NoImpersonate.js в PostBuildEvent:

cscript.exe "$(ProjectDir)NoImpersonate.js" "$(BuiltOuputPath)"

Но когда я это делаю, некоторые папки или журналы ошибок в моем приложении не создаются.

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

EDIT:

Я написал неправильный каталог. Это не ApplicationData, каталог - ProgramData. Извините за это.

1 Ответ

1 голос
/ 04 мая 2011

Первая проблема, которую я получил, когда Установщик помещает МДФ и ЛДФ в Папка ApplicationData \ MyApplication, разрешения неправильные

Используете ли вы папку пользовательских данных приложения или папку всех пользователей? Кроме того, какие разрешения вам нужны?

Если вы используете папку для каждого пользователя, вам не нужно устанавливать какие-либо разрешения. Если вы используете папку «все пользователи», ваше приложение всегда должно работать с правами администратора, чтобы оно могло писать в этом месте.

Вторая проблема, с которой я сталкиваюсь, заключается в том, что если пользователь, не по умолчанию учетная запись администратора, затем пользователь выполнить MSI-файл, а затем MSI выполняет ошибку 2869 при попытке сделать пользовательское действие.

Это происходит из-за сбоя пользовательского действия. Ваш подход неверен, вам не нужно устанавливать пользовательские разрешения для папки Application Data. Так что вам не нужно никаких пользовательских действий.

...