【发布时间】:2020-08-17 13:40:58
【问题描述】:
我在 Visual Studio 2019 中创建了一个使用 NuGet 包 (SQLite) 内容的小项目。 当我在 Visual Studio 中构建我的项目并在调试模式下运行它时,一切正常。但是当我将生成的文件从输出目录复制到另一个目录或另一台计算机时,它会失败,告诉我它没有从 NuGet 包中找到文件。
对于我正在使用的 NuGet 包,它缺少两个文件。当我将这两个丢失的文件从 NuGet 包目录复制到我的项目文件时,它又可以工作了。
但这真的是要走的路吗?假设我的项目越来越大,并且需要越来越多的 NuGet 包,我真的需要猜测每个 NuGet 包,我可能需要其中的哪些文件以及我可以在硬盘驱动器上的什么位置找到这些文件?
另一件事是我在我的 Windows 用户目录中的某个位置找到了来自 NuGet 包的文件,而不是在我的代码目录中。因此,如果我将我的代码存档并将其提供给其他人或稍后使用它,那么代码中将缺少 NuGet 包。
所以,这是我的问题:
1) 有没有办法告诉 Visual Studio 将所有需要的文件从所有使用的 NuGet 包中自动复制到输出目录?
2) 是否可以将下载的 NuGet 包存储在靠近我的源代码而不是我的 Windows 用户目录的位置?我只想归档一个目录来备份我的所有源代码。
我快速查看了构建后事件,可能会在构建后事件中将所有丢失的文件复制到输出目录,但这不是可行的方法,因为我仍然需要确切知道我需要哪些文件需要复制以及在哪里找到它们,并且所述文件的路径可能会因计算机而异。
【问题讨论】:
-
您是否在 net core 项目中安装了SQLite?我认为问题在于,当您执行此类操作时,您应该在当前用户帐户中还原 nuget 包,然后在构建时,VS 会找到 nuget 包,然后将它们复制到输出文件夹中。
-
我在一个 .NET Standard 项目中安装了 SQLite,但我从来没有机会决定将文件安装到哪里。
标签: visual-studio nuget visual-studio-2019