Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.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
C# 如何在保持项目文件.mdf不变的情况下仅将更改保存到bin文件夹中的数据库_C#_Sql_Asp.net_.net_Wpf - Fatal编程技术网

C# 如何在保持项目文件.mdf不变的情况下仅将更改保存到bin文件夹中的数据库

C# 如何在保持项目文件.mdf不变的情况下仅将更改保存到bin文件夹中的数据库,c#,sql,asp.net,.net,wpf,C#,Sql,Asp.net,.net,Wpf,我正在从事一个集成测试项目,在该项目的解决方案文件中有一个本地数据库,在每次编译时都会将该数据库复制到“bin/debug”中,然后使用该数据库 现在,我要求只在调试模式下对数据库进行更改,这样我们就不会对原始数据库进行任何更改,也不会将大型数据库文件推送到源代码管理 我知道在VisualStudio中有一个选项,它只会将数据更改为bin文件夹中的数据库,而原始数据库保持不变,我希望这样 另外,我只需要在第一次构建时将原始数据库复制到bin文件夹(当bin中没有.mdf时) Visual Stu

我正在从事一个集成测试项目,在该项目的解决方案文件中有一个本地数据库,在每次编译时都会将该数据库复制到“bin/debug”中,然后使用该数据库

现在,我要求只在调试模式下对数据库进行更改,这样我们就不会对原始数据库进行任何更改,也不会将大型数据库文件推送到源代码管理

我知道在VisualStudio中有一个选项,它只会将数据更改为bin文件夹中的数据库,而原始数据库保持不变,我希望这样

另外,我只需要在第一次构建时将原始数据库复制到bin文件夹(当bin中没有.mdf时)

Visual Studio中数据库文件的属性如下所示:

内容>始终复制

我的连接字符串是:


在此方面的任何帮助都将不胜感激。谢谢

如果我正确理解了您的问题,那么您可以将MDF属性更改为
Copy Never
,并在项目文件中添加一个属性,以便仅在文件不存在时将其复制到bin\debug文件夹中——

当然,您可以简单地从同一窗口调用批处理文件,为解决方案中的每个项目文件传递一些和编写非常复杂的pre或post行为。

但是,在使用批处理文件时,如前一链接中的注释所述,不要忘记在批处理文件的名称前面加上关键字call

如果我正确理解了您的问题,那么您可以将MDF属性更改为Copy Never,并向项目文件中添加预生成脚本,以便仅当文件没有复制到bin\debug文件夹时才将其复制到bin\debug文件夹exist@Steve非常感谢你为我指明了正确的方向,我写了构建脚本,它像一个魅力,请把这个评论作为一个答案,让更多的人可以从中得到帮助,再次感谢。