如何避免c#编译时自动拷贝数据库文件到输出文件夹中?

facat 2013-09-08 04:01:43
我将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"
我应该如何设置才能不让程序自动拷贝数据库,而是始终打开我加入到项目中的那个数据库文件?谢谢
...全文
406 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 facat 的回复:
[quote=引用 5 楼 guwei4037 的回复:] 没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。
难道是我添加数据库文件的方式不对?我是在工程上点右键选添加已有项。[/quote] 在你改为“不复制”以后,你需要“清理”工程或者解决方案,或者干脆把 bin/Debug 目录删除了也行,然后再编译。
全栈极简 2013-09-08
  • 打赏
  • 举报
回复
跟发布没关系,只是设置了不复制而已,这样就不会拷贝(或覆盖debug目录下原有的文件)到debug目录下。如果你想发布时把这个文件带走,就需要在项目的属性-生成事件中,编写命令行,将这个文件复制到debug目录下。
facat 2013-09-08
  • 打赏
  • 举报
回复
引用 7 楼 guwei4037 的回复:
[quote=引用 6 楼 facat 的回复:] [quote=引用 5 楼 guwei4037 的回复:] 没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。
难道是我添加数据库文件的方式不对?我是在工程上点右键选添加已有项。[/quote] 唉,我也按照你说的在工程上点右键选添加已有项,添加了access文件,然后按照我上面说的设置了一下,还是可以的,没有复制到bin/debug下面。[/quote] 我又添加一次可以了,真奇怪,不过我这次是把文件放在另一个工程里的。完整路径里面填的是绝对路径,发布的时候会有问题吗?
threenewbee 2013-09-08
  • 打赏
  • 举报
回复
还有个办法,就是在项目-属性-生成事件中写一个批处理,copy xxx.accdb $(TargetDir)\xxx.accdb
全栈极简 2013-09-08
  • 打赏
  • 举报
回复
引用 6 楼 facat 的回复:
[quote=引用 5 楼 guwei4037 的回复:] 没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。
难道是我添加数据库文件的方式不对?我是在工程上点右键选添加已有项。[/quote] 唉,我也按照你说的在工程上点右键选添加已有项,添加了access文件,然后按照我上面说的设置了一下,还是可以的,没有复制到bin/debug下面。
facat 2013-09-08
  • 打赏
  • 举报
回复
引用 5 楼 guwei4037 的回复:
没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。
难道是我添加数据库文件的方式不对?我是在工程上点右键选添加已有项。
全栈极简 2013-09-08
  • 打赏
  • 举报
回复
没问题的,右键vs项目中的access文件,弹出属性,点击属性,选择不复制即可。
facat 2013-09-08
  • 打赏
  • 举报
回复
winform
引用 3 楼 guwei4037 的回复:
[quote=引用 2 楼 facat 的回复:] [quote=引用 1 楼 guwei4037 的回复:] 在vs中,右键access的属性,复制到输出目录选项选择选择不复制即可,默认是始终复制。
设置了,rebuild以后还是会拷贝。[/quote] 你是什么项目?我刚也试过了,不拷贝的。[/quote] winform的项目
全栈极简 2013-09-08
  • 打赏
  • 举报
回复
引用 2 楼 facat 的回复:
[quote=引用 1 楼 guwei4037 的回复:] 在vs中,右键access的属性,复制到输出目录选项选择选择不复制即可,默认是始终复制。
设置了,rebuild以后还是会拷贝。[/quote] 你是什么项目?我刚也试过了,不拷贝的。
facat 2013-09-08
  • 打赏
  • 举报
回复
引用 1 楼 guwei4037 的回复:
在vs中,右键access的属性,复制到输出目录选项选择选择不复制即可,默认是始终复制。
设置了,rebuild以后还是会拷贝。
全栈极简 2013-09-08
  • 打赏
  • 举报
回复
在vs中,右键access的属性,复制到输出目录选项选择选择不复制即可,默认是始终复制。
请登陆到http://52csharp.com本工具是本网站专用的sql小工具。1.直接打开生成项目下面sql文件的sql脚本文件2.填写数据库服务器名称3.填写数据库用户名密码4.测试数据连接合法性5.生成数据库生成db.ini文件。6.把db.ini文件拷贝编译完成的应用程序下面7.在web里面要引用 本网站提供在线通过输入数据库结构自动生成代码, 生成的代码基于基于面向对象的思想和三层架构设计,融入了工厂模式,反射机制等等一些思想。采用 Model + DAL + BLL + Web +WinForm的设计,主要实现在 C# 对应数据库表的基类代码和Web界面、WinForm界面的自动生成,包括生成属性、添加、修改、删除、查询、存在性、 Model 类构造等基础代码片断,使程序员可以节省大量机械录入的间和重复劳动,而将精力集于核心业务逻辑的开发。 同提供方便的数据库查询管理,SQL脚本生成,存储过程生成,数据库文档生成,并直接生成VS2005的项目文件,可以直接用VS2005打开,同根据本网站提供的辅助工具可以根据生成的SQL脚本文件直接生成SQL2005数据库,您可以很方便地进行项目开发。详细功能说明 1.自动代码生成 。 可以生成三层架构的代码。代码生成效率很高。 它可以生成:实体Model,DAL(数据访问层),IDAL(接口层),DALFactory(类工厂),BLL(业务逻辑层),WEB层等多层的代码,可以节省大量的间来做业务逻辑的代码,那些重复的代码就交给它去做吧,1分钟生成一个架构所有的基本代码。我感觉有了它开发项目的效率简直好轻松2. 数据库生成器 。 通过runsql.exe工具可以直接操作SQL脚本文件直接生成数据库。3. 自动生成存储过程和SQL脚本 。4. 项目文件直接生成。
《Visual C#.NET范例入门与提高》配套光盘使用说明 本书所附光盘的内容包含了开发实例的所有程序源码,所有程序源码都是在Win2000 Professional,Visual C#.NET环境下编译并运行通过。要运行本光盘上的实例,用户应首先安装Visual C#.NET,另外本书部分例子属于ASP.NET应用程序,用户必须安装ASP.NET的相应环境,具体方法本书有介绍。另外如果有些程序在其他操作系统下无法直接运行,请读者根据原书的操作步骤自行编写程序。 第2章的ch2_6,ch2_7,ch2_10,需要使用的图片在光盘目录pic下。 第5章ch5_1,ch5_2两例使用的是Win2000 Professional原始的Windows Media Player组件,如果用户升级了Windows Media Player到其他版本,则会无法直接运行这两个例子,但书的方法仍然有效,读者可以自己模仿编写新的程序,或者卸载新安装的Windows Media Player版本即可直接运行本盘的程序。 运行第6章的例子前,必须先安装Microsoft Access和SQL Server软件,其需要使用的Access数据库已经放在ch6目录下,读者可根据书的具体说明自行设计数据库的存放路径,此外还必须能够访问安装在Microsoft SQL Server 2000或者SQL Server 2000 Desktop Engine下面的Northwind 数据库,具体的安装办法见书。例子CH6.6属于ASP.NET应用程序,默认路径应存放在D:\Inetpub\WWWROOT(如果操作系统在C盘,则为C:\Inetpub\WWWROOT,下同)目录下,为方便起见,将源程序附于光盘目录localhost下。 第8章的Web Service应用程序,首先需要安装IIS服务,以及进行正确的FrontPage首页配置(这一步如果安装的操作系统是Windows 2000 Service版本,或者重新安装了IIS5.0以上版本后,也可以不执行)。最后将Web 服务复制到D:\Inetpub\wwwroot子文件,否则将不能正确调用Web服务。为方便起见,将WebService的源程序附于光盘目录localhost下。 另外ch9_2是制作一个控件,直接运行不了,且无任何意义,需要结合Textloginbox项目来使用。9.9节对应“ch9其它文件的Setup子目录,也不能直接运行,它示范的是一个安装程序,可以在Setup的debug子目录下测试这个安装程序。 读者需要将光盘上的文件拷贝到本地磁盘,去掉“只读”属性后即可编译运行。

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧