1

我有一个在 IIS7 上运行的 ASP.NET 项目。我只是添加了 Microsoft.Practices.EnterpriseLibrary.Common.dll、Microsoft.Practices.EnterpriseLibrary.Data.dll 和 Microsoft.Practices.EnterpriseLibrary.ObjectBuilder2.dll。

我收到此错误:

Error   2   Could not load file or assembly 'Microsoft_Practices_EnterpriseLibrary_Common' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)       

我研究了这个问题,发现这意味着 dll 不在正确的位置,但它在我的 projectdirectory/bin 文件夹中。所以我不明白应该在哪里引用它。我的 Web.config 中没有引用它,但项目模板中没有生成程序集标记。

我需要引用这些程序集吗?如果是这样,我在哪里可以找到必要的属性,即 PublicToken 等?

4

3 回答 3

0

如果它是一个“网站”项目,您可以将 dll 放入 bin 文件夹中。但是,如果它是“Web 应用程序”项目,则需要添加引用并设置 copy local=true。

于 2013-04-19T02:47:18.840 回答
0

有时,其他工具/框架也会出现此问题。无需拉扯头发,只需添加对缺失程序集的引用并确保将这些引用设置为“复制本地”= true。我注意到放置在 GAC 中的框架 API 往往会出现这个问题。

于 2013-04-19T01:45:50.517 回答
0

我已经纠正了这个问题。我不知道为什么,但我不得不在我的项目中创建一个新文件夹并将 dll 移到那里,我能够构建解决方案。这是一个网站项目。

于 2013-04-19T16:01:04.683 回答