未将引用的ClassLibrary的从属DLL添加到应用程序的BIN中

时间:2018-08-10 22:01:46

标签: c# visual-studio-2017

有关此问题的问题太多了。我相信我已经阅读了所有内容,但仍然运气不佳。我有一个VS2015项目,我可以毫无问题地完成下面描述的所有工作。还要注意,我将应用程序和类库从2015年迁移到2017年所经历的过程是在2017年完全重建它们。无论如何,我在2017年使用新的应用程序和类库创建了一个新的解决方案来证明我的问题。 / p>

  1. 我创建了一个名为 ClassLibrary 的新库,以及一个名为 WebApplication 的新asp.net网络应用。
  2. 然后在ClassLibrary中我添加了一个nuget 进行测试(我还使用指向第三方DLL的文件引用对其进行了测试)。在这种情况下,我添加了AjaxControlToolkit 18.1.0进行测试。
  3. 然后在WebApplication项目中,我引用ClassLibrary

我希望这个简单的解决方案和项目引用能够将ClassLibrary的依赖DLLS复制到WebApplication项目bin中。它不是。在移至VS 2017之前,这将(并且仍然在VS 2015中执行)将ClassLibrary的依赖项DLL复制到WebApplication的BIN中。在我上面描述的VS2017项目中,AjaxControlToolkit未复制到BIN,我只看到ClassLibrary.dll,但没有依赖项。

正如一些帖子所建议的,我试图在Web应用程序项目代码中“使用” AjaxControlToolkit。这不起作用,因为该程序集在项目中不可用,并且我收到构建错误。根据我在Stack上发现的建议,我以多种不同的方式修改了.csproj文件,但没有任何效果。

更奇怪的是,我在垃圾箱中看到了DLL,但未在项目参考中列出。即使DLL位于垃圾箱中,我也无法使用它。 enter image description here

这是怎么回事?这是一个非常简单的引用练习,在Google上进行了两天的搜索之后,似乎很多人都遇到了这个问题。为什么这些DLL不能一直流到父应用程序BIN?

谢谢

1 个答案:

答案 0 :(得分:0)

在我的帖子中,我提到了最初在VS2015中创建的这些项目,然后在VS2017中重新创建了这些项目。此过程将原始的网站项目转换为 Web应用程序项目。

here所述,在Web站点项目中,将ClassLibrary引用为项目参考“相关程序集,XML文档文件,许可证文件,资源文件等的副本。” / em>(这包括ClassLibrary中已安装的Nugets)被复制到项目BIN。 Web应用程序不是这种情况。有关差异,请参见here。必需在任何需要的地方安装NuGet,它不会像网站项目那样从子引用中继承。