0

由于我是 .NET 开发的新手,我认为这是一个概念问题。

我的解决方案中有 3 个项目:

  1. Foo.Core:一个引用 Fluent NHibernate、NHibernate 和 Npgsql 的类库。这是我的业务层,包含服务、实体和 NHibernate 映射。
  2. Foo.Core.Tests:一个类库,其中包含引用 NUnit 和Foo.Core的测试;
  3. Foo.MVC:仅引用Foo.Core的 MVC 应用程序;

Foo.Core我有FooService一个GetFoo方法,它Foo从数据库返回一个(实体)实例。

在 MVC 项目中,我创建了一个实例FooService并调用GetFoo,但它引发了一个异常,即无法创建 NpgsqlDriver 实例。如果我添加对 Npgsql 的引用,它就可以工作。

Foo.Core已经引用了驱动程序,并且在那里打开了连接。为什么我需要在 MVC 项目中再次引用驱动程序?

编辑

经过更多搜索,我找到了这个链接。如果在 GAC 中引用它,则构建会忽略Copy Local,但我检查了 Npgsql.dll 并没有在那里注册。

4

1 回答 1

0

检查您是否true在 Foo.Core 中对 Npgsql 的引用设置了“复制本地”(在解决方案资源管理器中选择引用,然后单击 F4 以查看属性)。

如果设置为 true,则无需在 Foo.MVC 中添加引用。

于 2012-10-10T19:27:21.007 回答