【问题标题】:ClickOnce and SQL Server Compact databaseClickOnce 和 SQL Server Compact 数据库
【发布时间】:2016-11-15 12:08:11
【问题描述】:

我的 C# 控制台应用程序嵌入了 MS SQL Server Compact 数据库(.sdf 文件)。安装新版本的应用程序时,该文件不得被覆盖。

.sdf → 文件属性 → 构建操作:应该选择哪个值?选项包括 None、Compile、Content、Embedded Resource、EntityDeploy、ApplicationDefinition、Page、Resource、SplashScreen、DesignData、DesignDataWithDesignTimeCreatableData 和 XamlAppDef。

【问题讨论】:

    标签: c# clickonce sdf


    【解决方案1】:

    构建动作应该是“无”,但更重要的是“复制到输出目录”。这应该是“如果更新则复制”。

    【讨论】:

    • 我认为复制到输出目录是由构建时间决定的。我需要的是配置 ClickOnce setup.exe 仅在不存在的情况下安装 .sdf ......软件更新不能覆盖它。是否可以?怎么样?
    • 鉴于“如果文件当前不存在则复制文件”不是一个选项,您最好将其设置为“始终复制”到设备上的临时位置或文件名,然后获取您的 C# 代码以测试 .sdf 文件是否已存在,如果不存在,请将 .sdf 文件复制到正确的位置。不漂亮,我知道。
    • 好的!连接字符串是Data Source=|DataDirectory|\MyDb.sdf。因此,我将项目文件MyDb.sbf 重命名为MyDbEmpty.sdf 并在Progam.Main() 的开头检查ApplicationDeployment.CurrentDeployment.DataDirectory 中是否存在文件MyDb.sdf,如果不存在,则复制MyDbEmpty.sdfMyDb.sdf。在 VS 调试运行中访问 ApplicationDeployment.CurrentDeployment.DataDirectory 会引发异常,必须对其进行处理。迈克·格莱德希尔,感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多