在Visual Studio 2008中引用dll二进制文件或引用项目有区别吗?

本文关键字:引用 项目 项目有 有区别 dll Studio Visual 2008 二进制文件 | 更新日期: 2023-09-27 18:06:44

我有两个项目。项目A是一个web项目,项目B是一个数据访问库。项目B引用了另一个项目(项目C),以及一些第三方dll,这些dll通过名为"Library"的目录中的文件被引用。如果我引用项目B作为项目参考,一切都正常。如果,相反,我引用输出到项目B的bin/debug文件夹的dll,一切构建,但我得到以下错误,我们内置的开发web服务器试图显示默认页面。

[BadImageFormatException: Could not load file or assembly 'my_dal.data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. An attempt was made to load a program with an incorrect format.]

我正在运行Windows 7 64位操作系统,所以我似乎有一个32/64位问题,但我看不出构建过程是如何与一个参考而不是另一个工作的。

在Visual Studio 2008中引用dll二进制文件或引用项目有区别吗?

这是因为项目知道它自己的依赖项。DLL不提供visual studio同样需要提供的有关依赖二进制文件的信息。

无论哪种方式,您都应该将项目引用为项目而不是二进制文件,因为当您对其进行更改时,它们会在构建时自动更新DLL。

引用bin/debug文件夹中的文件失败的原因是,当您重新构建/清理解决方案时,这些文件将被清除。在另一个项目中引用一个项目的最佳方法是将其添加为项目引用,而不是通过二进制文件。

您在那里得到的错误表明您正在尝试
A)加载64位和32位的程序集
B)加载为32位构建的程序集并加载为64位构建的程序集

您可以通过将项目更改为"Any CPU"来修复此错误