我有一个带有主要项目的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现在是否有更好的解决方案。
答案 0 :(得分:1)
Install and manage packages in Visual Studio using the NuGet Package Manager中提供了解决此问题的方法。这并不理想,主项目仍然需要知道其他项目使用某些Nuget软件包,但是至少您不必编辑.csproj
文件,也不必键入命令行
在Visual Studio中。菜单-工具-Nuget软件包管理器
打开的窗口显示已安装的Nuget软件包。如果单击它们,则可以在右侧看到使用这些软件包的项目。
对于您的主程序在运行时抱怨缺少的所有已安装软件包,请选中MyMainProject
附近的框。在底部,单击安装。
A,我希望项目MyDll
中有一些东西可以告诉使用此DLL的每个人,他们也需要这些Nuget软件包。但是暂时我将使用此方法。
11年后将再次检查是否有任何改善。