我经常需要用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 。
关于sql-server-data-tools - 如何在 SSDT 解决方案中更改 SqlLocalDB (localdb) 实例的标准名称?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12693425/