数据访问项目dll未添加到客户端bin文件夹

时间:2016-02-26 19:18:48

标签: c# asp.net visual-studio-2015

您好我正在使用以下结构在visual studio中创建新项目:

enter image description here

现在引用的方式将使用以下结构:

  • 客户项目仅参考Commercify.Product.Contracts
  • Commercify.Products将引用Commercify.Product.Contracts和Commercify.DataAccess.Contracts
  • Commercify.DataAccess引用Commercify.DataAccess.Contracts
  • Infrastructure.Injector仅在客户端引用,将用于注册依赖项

在启动时,我调用以下代码:

       Assembly assembly = Assembly.Load(new AssemblyName("Commercify.DataAccess"));

当执行此代码时,我得到以下异常:

{"Could not load file or assembly 'Commercify.DataAccess, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.":"Commercify.DataAccess, Culture=neutral, PublicKeyToken=null"}

现在我假设发生了这种情况,因为Visual Studio似乎没有看到Commercify.DataAccess是实际需要的,因为它没有在其他项目的任何地方引用。我在使用csproj类型项目的项目中遇到了完全相同的问题,因此它不是dxsproj问题。 我通过使用post build事件解决了它。

如果有的话,我希望有更清洁的解决方案。

有谁能告诉我如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您正在动态加载DLL,因此Visual Studio不知道需要复制它。

或者您坚持使用后期构建事件(我在这样的确实情况下工作,这是最好的方法)或者您在其他项目中添加对项目的引用,但它无法动态加载组装