ClickOnce是一种新的Windows Form程序的安装方式。与MSI安装程序不同,它更象web程序的运行方式,程序是Window Form类型的,但是通过一个web地址启动的,并且运行在一个“砂箱”环境下,对本机的一些资源(如注册表)没有访问权限。不过我试用ClickOnce最大的好处是可以自动升级。
ClickOnce详细的技术在msdn上有很多文章。这里只是把我遇到的问题记录下来。
先介绍一下我要完成的功能:一个单机版的Window Form程序,带有一个本地的ACCESS数据库和一个数据文件menu.xml。 要求程序更新后可以自动升级,也就是为了这一点,我才使用的ClickOnce安装,其实ClickOnce安装适合哪些C/S结构的发布。
问题1
我的数据库和xml文件原来放在一个叫APP_Data的子目录下。但安装时总是报错找不到文件。
后来研究了一下,发现ClickOnce的Client安装后的目录结构是固定,我没有找到方法能改变它。而且与你的开发环境的设置不一样。
图1:开发环境下的目录结构
图2:部署在Client端的目录结构
当程序跑在Client端时,它的数据和程序分开在两个目录下,而且目录名如此的怪异。这也造成了程序在运行时和开发式数据文件的位置是不一样的。
在程序访问本地数据库文件和xml文件时,需要考虑当