【发布时间】:2020-11-12 03:26:28
【问题描述】:
我有一个带有主项目的 Visual Studio 解决方案(Microsoft Visual Studio Professional 2017),它在同一解决方案中使用 DLL 项目中的类。
DLL 是一个“类库(.NET 框架)。
主要项目是(对于我的初步调查)一个控制台应用程序。未来的版本将是 WPF。我认为问题出现在所有使用其他 DLL 的 DLL 的应用程序上。
DLL 使用 Nuget 包中的其他 DLL。在这种情况下:SQLite。我想向我的主项目隐藏我的 DLL 使用 Sqlite。这使得在未来的版本中可以将其更改为不同的数据库,或者可以使用实体框架来访问数据。
所以我的主项目只知道它在同一个解决方案中使用了 DLL。它不知道这个 DLL 使用了其他 DLL。
问题:这些其他 DLL 没有复制到我的主应用程序文件夹中。
之前有人问过这个问题:Copying a DLL's dependencies in Visual Studio 答案说您应该使用 Sqlite 中的类来确保复制 DLL。这正是我想要阻止的:我的 DLL 的用户不必知道这个 DLL 使用 SQLite
这个问题是 11 岁。
我想知道 Visual Studio 现在是否有更好的解决方案。
【问题讨论】:
-
你的Dll项目和你的主项目类型是什么?,Dll的net标准库项目,主项目的net框架项目?
-
我编辑了问题并添加了信息
-
还有一个问题:你用过这个SQLitenuget包和其他dll吗?
-
我安装了 Nuget
System.Data.SQLite,它安装了其他 Nuget 包。如果我的 DLL 使用我自己的 Dll 之一,也会出现此问题。如果我的主项目使用这个其他 Dll 的任何内容,则复制其他 DLL。问题是:我不希望我的主使用任何 SQLite。如果在将来的版本中我放弃 SQLite,我不想更改我的 DLL 的用户 -
旧的 Net Framework 项目仍然需要一些自定义目标或构建后事件来将依赖项 dll 复制到主项目的输出文件夹中。你应该写一个脚本来实现它。但是在新的sdk格式项目中,dll会自动复制到主项目中。
标签: visual-studio dll nuget