2016-11-15 9 views
0

В моем консольном приложении C# встроена база данных MS SQL Server Compact (файл .sdf). Когда установлена ​​новая версия приложения, этот файл должен быть заменен не.База данных ClickOnce и SQL Server Compact

.sdf → Свойства файла → Действие сборки: какое значение следует выбрать? Возможные значения: None, Compile, Content, Embedded Resource, EntityDeploy, ApplicationDefinition, Page, Resource, SplashScreen, DesignData, DesignDataWithDesignTimeCreatableData и XamlAppDef.

ответ

0

Действие сборки должно быть «Нет», но что более важно, это «Копировать в выходной каталог». Это должно быть «Копировать, если новый».

+0

Я думаю, что копирование в выходной каталог - это то, что определяется временем сборки. Мне нужно настроить ClickOnce setup.exe для установки .sdf, только если его не существует ... Обновление программного обеспечения не должно перезаписывать его. Является ли это возможным? Как? – haba713

+1

Учитывая, что «Копировать файл, если он в настоящее время не существует», не является вариантом, лучше всего установить его «Всегда копировать» во временное местоположение или имя файла на устройстве, а затем получить код C# для проверки, если файл .sdf уже существует, а если нет, скопируйте файл .sdf в нужное место. Не очень, я знаю. –

+0

Хорошо! Строка подключения - «Источник данных = | DataDirectory | \ MyDb.sdf'. Итак, я переименовал файл проекта 'MyDb.sbf' в' MyDbEmpty.sdf' и в начале 'Progam.Main()' Я проверяю, существует ли файл 'MyDb.sdf' в' ApplicationDeployment.CurrentDeployment.DataDirectory' и если * не *, скопируйте 'MyDbEmpty.sdf' в' MyDb.sdf'. Доступ к 'ApplicationDeployment.CurrentDeployment.DataDirectory' в VS debug run вызывает исключение и его нужно обрабатывать. Майк Гледхилл, спасибо за помощь! – haba713