У меня есть проект Windows Form, и я создал проект мастера установки, чтобы пользователи могли установить его, используя способ «Далее, затем, завершение».
Этот проект использует Microsoft Access в качестве базы данных, и я правильно добавил файл базы данных в SetupWizard, и все было в порядке.
ОДНАКО после переустановки я заметил, что Windows копировала файл базы данных из «Папки приложения» в C: \ users \ myUser \ AppData \ Local \ VirtualStore \ Program Files (x86) \.
И просто к сведению, моя строка подключения в app.config:
<connectionStrings>
<add name="<ProjectName>.Properties.Settings.databaseConnectionString"
connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\database.mdb;Persist Security Info=True;Jet OLEDB:Database Password=MyPassword"
providerName="System.Data.OleDb" />
</connectionStrings>
Если я просто соберу .exe из ProjectOutput и базу данных.mdb в одной папке, он будет работать отлично.
Когда я делаю установку, он копирует файл базы данных в папку C: \ users \ myUser \ AppData \ Local \ VirtualStore \ Program Files (x86) \, и это проблема, так как я хочу, чтобы пользователь установил его там, где ему заблагорассудится, и что файл останется только там. (Кстати, это требование программного обеспечения).
Я также пробовал установку для «текущего пользователя» и «всех пользователей», и поведение было таким же.
answer
в этом сообщение может оказаться полезным. - person Hassan   schedule 28.04.2014