2016-11-15 133 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#代码来测试if .sdf文件已存在,如果不存在,请将.sdf文件复制到适当的位置。我不知道,我知道。 –

+0

好的!连接字符串是'Data Source = | DataDirectory | \ MyDb.sdf'。因此,我将项目文件'MyDb.sbf'重命名为'MyDbEmpty.sdf',并在'Progam.Main()'的开始处检查'ApplicationDeployment.CurrentDeployment.DataDirectory'中是否存在'MyDb.sdf'文件,并且如果* not *,则将'MyDbEmpty.sdf'复制到'MyDb.sdf'。在VS调试运行中访问'ApplicationDeployment.CurrentDeployment.DataDirectory'会引发异常并且必须处理它。 Mike Gledhill,感谢您的帮助! – haba713

相关问题