【问题标题】:Is there a simple way to switch between a project and it's dll有没有一种简单的方法可以在项目和它的 dll 之间切换
【发布时间】:2010-10-08 16:13:30
【问题描述】:

我们经常有一组通用核心库,对于我们的某些开发,我们希望将它们视为 dll 引用,因此只引用 dll 而不包含项目文件。

其他时候,我们需要所有项目来进行亲密的调试会话。我不能只拥有 Uber.sln 和 Core.sln,因为引用在项目文件中。多年来,我在不同的项目中都遇到过这个问题,但除了 Uber.sln 和 50 个项目之外,我没有任何解决方案。

欢迎任何想法/提示/方向!

【问题讨论】:

    标签: visual-studio dll projects-and-solutions


    【解决方案1】:

    只要 DLL 是使用 Debug 构建的并且您拥有 PDB,就不需要将其作为“项目参考”包含在内。

    它会提示您输入源代码,或者您可以在解决方案中打开源代码并设置断点。

    How to show source code in debug when using .lib and dll

    【讨论】:

    • +1,是的。查找 .pdb 文件也很少有问题,只要它仍然位于原始构建文件夹中。
    【解决方案2】:

    在他们自己的项目中开发共享 dll。编译它们并将它们添加到项目中引用它们的 lib 文件夹中。
    像这样创建一个开发树:

    /lib
     shareddlls go here
    /src
     solution.sln
     /projectfolder
      project.proj
    /tools
     testing frameworks
    

    当您在 VS 中调试并进入您自己的 dll 时,您应该仍然能够看到代码,因此无需将共享 dll 添加到 uber 项目中。如果您看不到代码,则将其作为黑匣子处理。调试输入和输出的内容。如果不是您所期望的,那么问题出在共享 dll 中。去他们自己的项目中调试它们。

    使用测试框架在他们自己的项目中测试您的共享 dll。 -----

    【讨论】:

    • 有时您想开发跨共享 dll 和应用程序 dll 的功能。在那些时候,拥有一个大型解决方案会带来好处。这似乎是一种不受 MS 支持的工作方式。
    • @Squirrel 对我来说这是一个糟糕的设计。每个类应该负责一件事,类似的项目(dll)应该对类似的功能进行分组。努力消除依赖。
    • 让我重新表述一下,通常您需要一个调试会话,您必须在其中跟踪从服务器顶层到“组件”dll 的请求。您意识到组件中存在需要修复的问题,但是当组件是 dll 时,您需要启动组件解决方案,重新构建组件,然后获取那些构建的 dll 并更新应用程序解决方案/项目所在的 dll指向。总而言之,这有点小题大做,所以我们有一个大的解决方案。两种选择都不理想 - 这种情况听起来很熟悉还是只有我一个人?
    【解决方案3】:

    我认为我想出的最接近的答案是包括解决方案中的所有项目以及一个 dll 项目,该项目在编译时会将 prod / canned dll 发送到输出目录。

    然后通过使用不同的配置,我可以在 Debug 配置与正在构建的项目之间切换到 Release 配置与仅构建 dll 项目。

    会试一试并报告....

    【讨论】:

    • 嗨松鼠,效果如何?我和你有同样的问题。谢谢。
    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 2012-09-16
    • 2013-12-06
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    相关资源
    最近更新 更多