这可能是一个非常容易回答的问题,但我在这里试图研究愚蠢的小事情,所以我想我只是在这里提出问题。
我在VS2013中有两个项目的解决方案。主项目(Startup项目)是一个C#Winforms项目,它以DB为目标,第二个项目是一个SQL项目,该项目具有所述DB的模式。
所以我可以进行更改并构建SQL项目。我可以拍摄快照和eveything游泳。我不能做的是运行项目(应该将它发布到(localdb)调试项目中。如果我点击运行,它将运行默认的启动项目。
当然我可以暂时将SQL项目设置为默认启动项目,然后运行,然后再将主项目设置为默认启动项目。
当然,必须有一种方法可以构建SQL项目并让它一次性发布到调试数据库,或者至少在上面描述的更简单的步骤中发布?
事实上,我最终会喜欢的是,如果有一个热键可以构建两个项目,将SQL项目发布到调试数据库并运行主项目。
答案 0 :(得分:4)
没关系,我已经明白了。转到PROJECT - >项目依赖...
在“Projects:”组合框中选择WinForms项目,然后在“取决于:”核对表框中勾选数据库项目。
WinForms项目现在依赖于数据库项目,如果运行应用程序,VS将首先构建数据库项目,然后将其发布到调试数据库,然后构建WinForms项目然后运行它。或者看起来如此。
答案 1 :(得分:1)
在每个构建上运行数据库部署有两个方面,一方面你希望数据库是最新的,但一方面它很慢,而且很快就会非常恼火!
你可以做的是让你的c#app作为启动应用程序,所以按F5启动它,但也将键盘快捷键映射到“Build.SSDTPublishSelection”,我映射CTRL + 6,因为它在F5附近,我没有使用了快捷方式的组合(至少在过去15年中没有!) - 这只发布了所选项目,因此您需要先在对象资源管理器中选择它(我已将其覆盖在另一系列快捷方式中,这些快捷方式将重点放在解决方案上探索者并与当前文档同步 - 我知道键盘天堂,谁需要vim和emacs哈哈)
这是你确保选择项目CTRL + 6,然后发布F5,你应该得到你想要的。
另外一件事是,如果您还没有,请查看允许您直接发布存储过程的加载项,而无需经过发布周期,因此您可以进行增量更改,然后在准备好时进行完整发布并运行所有测试(Dave Ballantyne发表了一篇:http://dataidol.com/davebally/2014/03/01/ssdt-fast-deploy/我有一篇:https://github.com/GoEddie/SSDTExtension/tree/master/download/0.4.2)
希望它有所帮助!
埃德艾略特