我经常需要用 SSDT 项目打开几个解决方案。这些解决方案名称相同,但有细微的差别,即它们只是来自源代码控制系统中的不同分支。但是这些解决方案总是试图使用相同的(localdb)实例来虚拟化他们项目的数据库。这会导致冲突、冻结和结束 Visual Studio 进程的必要性。
所以问题如下:有没有办法配置(localdb)实例的名称,以便在具有相同名称的解决方案中打开和虚拟化 SSDT 项目集?
我经常需要用 SSDT 项目打开几个解决方案。这些解决方案名称相同,但有细微的差别,即它们只是来自源代码控制系统中的不同分支。但是这些解决方案总是试图使用相同的(localdb)实例来虚拟化他们项目的数据库。这会导致冲突、冻结和结束 Visual Studio 进程的必要性。
所以问题如下:有没有办法配置(localdb)实例的名称,以便在具有相同名称的解决方案中打开和虚拟化 SSDT 项目集?
我很确定,如果数据库至少命名不同,那么 Visual Studio 的多个实例在使用单个共享 (localdb)\ 实例时应该不会有问题。我试过了,除了数据库争用之外没有其他问题(即使解决方案和数据库的名称相同)。
当然,我可以看到能够使用托管同名数据库的多个不同实例是多么有用。例如,您同时在多个代码分支中工作:主干、一些修补程序分支和一个特性分支。
我想不出一种非常优雅的方式来做到这一点,但是您可以使用以下部分将其组合在一起:
1) 使用“sqllocaldb”实用程序创建您需要的每个 localdb 实例。您可以在预构建事件中执行此操作,也可以在开发人员系统上一次性执行此操作。前任。
sqllocaldb.exe create "myinstance1"
2)问题在于配置它...如果您使用 VS 的“调试”部署(按 F5 时部署),则必须为您正在使用的每个不同解决方案手动更改它。如果您使用“发布配置文件” " 您可以为每个不同的数据库实例创建一个配置文件,但您必须在调试应用程序之前手动部署数据库。
您是否也依赖 localdb 进行 Team Build 和自动化集成测试?那可能会改变事情。
这是一些附加信息:http: //msdn.microsoft.com/en-us/library/hh510202.aspx。
调试和构建过程 (F5) 的目标数据库配置可以在以下位置完成:
项目属性 - 调试 - 目标连接字符串。
因此,您可以将具有相同名称的分支项目指向您选择的不同数据库实例。