2

使用 MS Visual Studio 2008,我创建了一个依赖于第二个库 (helper.dll) 的 C# 库(我们称之为 main.dll)。在 main.dll 的 Debug 版本中,我设置了对 helper.dll 的 debug 版本的引用。但是当我切换到构建 main.dll 的 Release 版本时,输出文件夹仍然包含 helper.dll 的调试版本。我看不到为不同的构建类型选择不同版本的 helper.dll 的方法。在 C++ 中,我可以告诉链接器从哪个文件夹中获取其文件,但我看不到 C# 的方法。

4

3 回答 3

2

这样做的典型方法是将所有项目放在一个解决方案中,并在它们之间使用项目引用。然后,当您在 Debug 中构建时,所有组件都将被构建并作为 debug 引用 - 对于 Release 也是如此。

或者,您可以为所有程序集使用单个输出文件夹,从那里引用每个二进制文件,并确保构建顺序正确 - 以便在helper.dll构建之前构建到该文件夹main.dll​​。但是,这更容易发生故障,并且需要更多的手动维护。

于 2013-03-11T15:01:20.570 回答
1

当你从 Debug 切换到 Release 时,Visual Studio 在输出的 bin 文件夹中从 Debug 切换到 Release。

将 main.dll 的“始终复制”属性设置为 true。这将确保它被复制到适当的输出文件夹,并始终被引用。

于 2013-03-11T14:59:45.180 回答
0

helper.dll如果在同一解决方案中同时构建第二个库,则可以使用项目引用而不是直接引用 .dll。然后,您可以为 mode 设置解决方案级别的配置,并以这种方式Release在 mode 下构建两个项目。Release

于 2013-03-11T15:00:59.267 回答