日期:2014-05-17  浏览次数:21076 次

如何避免c#编译时自动拷贝数据库文件到输出文件夹中?
我将Access数据库文件加入项目中,然后自动生成了相应的Dataset,TableAdapter,BindingSource这些东西。我发现一个问题,就是每次编译的时候编译器会自动把我的数据库文件拷贝到输出文件夹下,例如bin\Debug。如果我对数据库中的数据进行了修改,c#实际上修改的是\bin\Debug下的数据库。如果我下次重新编译了项目,bin\Debug下的数据库文件就会被项目中的数据库文件覆盖,我的修改也就没有了。

app.config 中的connectionString 是这样写的
connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\TransTap.accdb;Persist Security Info=True"
我应该如何设置才能不让程序自动拷贝数据库,而是始终打开我加入到项目中的那个数据库文件?谢谢

------解决方案--------------------
在vs中,右键access的属性,复制到输出目录选项选择选择不复制即可,默认是始终复制。
------解决方案--------------------
还有个办法,就是在项目-属性-生成事件中写一个批处理,copy xxx.accdb $(TargetDir)\xxx.accdb
------解决方案--------------------
引用:
Quote: 引用:

没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。

难道是我添加数据库文件的方式不对?我是在工程上点右键选添加已有项。


在你改为“不复制”以后,你需要“清理”工程或者解决方案,或者干脆把 bin/Debug 目录删除了也行,然后再编译。