【问题标题】:What's the best practice when adding a Class Library dll in a project?在项目中添加类库 dll 时的最佳做法是什么?
【发布时间】:2015-12-03 00:18:36
【问题描述】:

我有一种情况,我需要将 *.dll 项目(类库,比如 ClassLib.dll)添加到启动项目(包含 .exe)。但我在这里面临一个问题。首先我需要编译库项目,并通过引用->添加引用将那个dll引用添加到主解决方案中,然后在浏览路径bin->调试路径后添加ClassLib.dll。

  1. 但我的第一个问题是我应该在哪个版本中添加 dll?如果我添加发布构建 dll,那么发布构建路径(Bin -> Release -> ClassLib.dll)与调试构建(Bin -> Debug -> ClassLib.dll)不同。

  2. 现在如果我需要调试类库的源代码以及我的exe项目,那么我肯定需要引用调试模式的dll。

  3. 但是我在类库项目中所做的任何更改都需要在发布版本中进行编译,以便我们可以构建和发布启动项目以及类库项目以进行最终构建。

  4. 如果我参考发布模式 dll 并且我执行 Clean 解决方案是发布模式,然后我启动调试模式,然后我收到错误“FileNotFoundException”。当然,作为参考的发布路径中缺少 dll 文件。

我见过很少有项目在调试模式和发布模式编译中具有单独的 ClassLib.dll。如何实现?

谁能指导我在调试模式下添加调试 ClassLib.dll 并在发布模式下发布 ClassLib.dll 的最佳做法是什么。

谢谢

【问题讨论】:

    标签: c# .net visual-studio-2010 dll visual-studio-2015


    【解决方案1】:

    您不必担心这些 Debug 版本配置。只需将 dll 的发布路径中的引用添加到您的 .exe 项目中。并将 dll 库项目添加到 Visual Studio 中的解决方案中。通过右键单击解决方案并转到项目依赖项来设置.exe项目的依赖项以编译dll。在组合框中选择您的 exe 项目并选中 dll 项目的复选框。这将始终确保在编译 exe 之前编译 dll 项目。

    【讨论】:

    • 感谢您的回答,但假设我在发布路径 Bin -> 发布 -> ClassLib.dll 中添加了一个引用,然后在发布版本中我会清理。现在在调试模式下,如果我开始重建并运行项目,我会收到错误“FileNotFoundException”。我已经按照你说的做了,在配置管理器中,我将构建依赖项添加到 ClassLib 项目中,所以在调试模式下,如果我编译它应该先编译 ClassLib.dll 项目,然后十开始编译 exe 项目,对吧?但我相信它并没有这样做。
    • 添加 dll 的引用时。设置 Copy Local = True 这将确保将 dll 复制到您的 Debug/Release 构建文件夹。
    【解决方案2】:

    您可以使用 .exe 项目将您的类库项目包含到您的解决方案中,并为 .exe 项目添加项目引用,而不是直接引用 ClassLibrary.dll。当您开始在发布模式下构建您的 .exe 项目时,所有相关项目都将在发布模式下构建和引用。调试模式也一样。

    【讨论】:

    • 我没有问这个。我问我是否在 .exe 项目中添加了 .dll 引用。但是应该在哪种模式下构建 .dll?是debug模式还是release模式classlib.dll需要参考exe项目?
    猜你喜欢
    • 1970-01-01
    • 2014-03-16
    • 2015-09-25
    • 1970-01-01
    • 1970-01-01
    • 2016-09-12
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多