Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 一键部署—如何确保仅在sqlite数据库文件不';还不存在吗? 后台-我开始使用一个WiFrm应用程序的单击一次部署,该应用程序拥有SQLite数据库文件,它保存了准备好的空白数据库结构。p>_Visual Studio 2008_Sqlite_Clickonce - Fatal编程技术网

Visual studio 2008 一键部署—如何确保仅在sqlite数据库文件不';还不存在吗? 后台-我开始使用一个WiFrm应用程序的单击一次部署,该应用程序拥有SQLite数据库文件,它保存了准备好的空白数据库结构。p>

Visual studio 2008 一键部署—如何确保仅在sqlite数据库文件不';还不存在吗? 后台-我开始使用一个WiFrm应用程序的单击一次部署,该应用程序拥有SQLite数据库文件,它保存了准备好的空白数据库结构。p>,visual-studio-2008,sqlite,clickonce,Visual Studio 2008,Sqlite,Clickonce,问题-如何设置这些内容,以便单击一次部署(在VS2008中通过发布)可以确保用户下载时: a) 如果不存在,则在中复制该文件,否则 b) 不要在中复制文件,但请检查是否有应运行的升级脚本 谢谢这并不能直接回答您的问题,但我认为这些信息将有助于您规划如何处理您的情况。阅读(特别是标题为“数据目录和应用程序版本”的部分),了解ClickOnce如何处理数据目录中的文件。另外,要将数据库视为数据文件,请确保数据库文件标记为数据文件(在VS.Net内部-转到项目属性->项目->应用程序文件-确保“发

问题-如何设置这些内容,以便单击一次部署(在VS2008中通过发布)可以确保用户下载时:

  • a) 如果不存在,则在中复制该文件,否则
  • b) 不要在中复制文件,但请检查是否有应运行的升级脚本

谢谢

这并不能直接回答您的问题,但我认为这些信息将有助于您规划如何处理您的情况。阅读(特别是标题为“数据目录和应用程序版本”的部分),了解ClickOnce如何处理数据目录中的文件。另外,要将数据库视为数据文件,请确保数据库文件标记为数据文件(在VS.Net内部-转到项目属性->项目->应用程序文件-确保“发布状态”为“数据文件”)。下面我已经粘贴了我所指的那篇文章中的部分。您可能希望探索的一件事是使用IsFirstRun属性,然后检查数据库是否存在,如果不在运行时创建,如果需要更新,则更新,等等。。。。(使用此方法,您可能希望在clickonce数据目录的“外部”创建数据库,或者在运行时在部署中不存在的数据目录内部创建一个新数据库,以便控制更新如何影响数据库)

“数据目录和应用程序版本

应用程序的每个版本都有自己的数据目录,该目录与其他版本隔离。ClickOnce将创建此目录,而不管部署中是否包含任何数据文件,以便应用程序在运行时具有创建新数据文件的位置。安装新版本的应用程序后,ClickOnce将进行复制将以前版本的数据目录中的所有现有数据文件保存到新版本的数据目录中,无论它们是包含在原始部署中还是由应用程序创建的

如果数据文件在旧版本应用程序中的哈希值与在新版本应用程序中的哈希值不同,则ClickOnce将用新版本的服务器替换旧版本的文件。此外,如果应用程序的早期版本创建的新文件与新版本部署中包含的文件同名,则ClickOnce w我将用新文件覆盖旧版本的文件。在这两种情况下,旧文件都将包含在名为.pre的数据目录中的子目录中,以便应用程序仍然可以访问旧数据进行迁移

如果需要更细粒度的数据迁移,可以使用ClickOnce部署API执行从旧数据目录到新数据目录的自定义迁移。您必须使用IsFirstRun测试可用下载,使用update或UpdateAsync下载更新,并在迁移后自行执行任何自定义数据迁移工作更新完成。”

也许“migratordotnet”适合我的问题


找到它:

谢谢-我有一种印象,我想做的事情可能必须在我自己的应用程序代码中,但可以通过单击我的应用程序代码调用方法(例如IsFirstRun)来开始,看看它是否是应用程序的第一次安装。我的思路正确吗?在安装/更新后的应用程序首次启动时,IsFirstRun是正确的。