将DLL依赖文件复制到主项目

时间:2020-07-22 14:33:01

标签: visual-studio dll nuget

我有一个带有主要项目的Visual Studio解决方案(Microsoft Visual Studio Professional 2017),该项目在同一解决方案中使用DLL项目中的类。

DLL是一个“类库(.NET框架)。

主要项目是(对于我的初步调查)控制台应用程序。将来的版本将是WPF。我认为该问题出现在所有使用其他DLL的DLL的应用程序上。

该DLL使用来自Nuget包的其他DLL。在这种情况下:SQLite。我想对我的主项目隐藏我的DLL使用Sqlite。这样就可以在将来的版本中将其更改为其他数据库,或者可以使用实体框架来访问数据。

所以我的主项目只知道它在同一解决方案中使用DLL。它不知道此DLL使用其他DLL。

问题:这些其他DLLS不会复制到我的主应用程序文件夹中。

此问题已被问过:Copying a DLL's dependencies in Visual Studio 答案说,您应该使用Sqlite中的类来确保DLL被复制。这就是我要防止的:我的DLL的用户不必知道此DLL使用SQLite

这个问题已经11岁了。

我想知道Visual Studio现在是否有更好的解决方案。

1 个答案:

答案 0 :(得分:1)

Install and manage packages in Visual Studio using the NuGet Package Manager中提供了解决此问题的方法。这并不理想,主项目仍然需要知道其他项目使用某些Nuget软件包,但是至少您不必编辑.csproj文件,也不必键入命令行

  • 我的解决方案
    • MyMainProject。指的是MyDll
    • MyDll。使用Nuget软件包

在Visual Studio中。菜单-工具-Nuget软件包管理器

打开的窗口显示已安装的Nuget软件包。如果单击它们,则可以在右侧看到使用这些软件包的项目。

对于您的主程序在运行时抱怨缺少的所有已安装软件包,请选中MyMainProject附近的框。在底部,单击安装。

A,我希望项目MyDll中有一些东西可以告诉使用此DLL的每个人,他们也需要这些Nuget软件包。但是暂时我将使用此方法。

11年后将再次检查是否有任何改善。