使用MS Visual Studio2008,我创建了一个依赖于第二个库(helper.dll)的C#库(让我们称之为main.dll)。在main.dll的调试版本中,我设置了对helper.dll调试版本的引用。但是当我切换到构建main.dll的发布版本时,输出文件夹仍然包含helper.dll的调试版本。我没有看到为不同的构建类型选择不同版本的helper.dll的方法。在C++中,我可以告诉链接器从哪个文件夹获取文件,但在C#中我看不到这样做的方法。
发布于 2013-03-11 23:01:21
执行此操作的典型方法是将所有项目放在单个解决方案中,并在它们之间使用项目引用。然后,当您在Debug中构建时,所有组件都将作为debug进行构建和引用--发布时也是如此。
或者,您可以对所有程序集使用单个输出文件夹,引用其中的每个二进制文件,并确保构建顺序正确-以便在构建main.dll之前将helper.dll构建到该文件夹。然而,这更容易失败,并且需要更多的手动维护。
发布于 2013-03-11 22:59:45
当您从Debug切换到Release时,Visual Studio会在输出的bin文件夹中从Debug切换到Release。
将main.dll的"Copy Always“属性设置为true。这将确保它被复制到适当的输出文件夹,并始终被引用。
发布于 2013-03-11 23:00:59
如果在同一解决方案中同时构建第二个库helper.dll,则可以使用项目引用而不是直接引用.dll。然后,您可以为Release模式设置一个解决方案级别的配置,并以这种方式在Release模式下构建两个项目。
https://stackoverflow.com/questions/15341738
复制相似问题