我在Visual Studio 2017中有一个解决方案,大约有10个项目打算使用相同的dll。 对我来说,引用 dll 的最简单方法似乎是将其添加到 10 个项目中每个项目的"参考"中。 这些示例是位于不同文件夹中的.exe文件。它们都应该访问一个名为 .. 的文件夹中的同一 dll。/.DLL。 不幸的是,.exe文件仅在dll位于同一目录中的情况下运行。 我找到了很多关于该主题的线程,但似乎没有简单的出路,比如只是更改一种路径属性或将搜索范围扩展到环境路径或类似的东西......
据我所知,你需要告诉每个项目.dll引用什么以及在哪里可以找到它。所以不,我认为除了将其添加到引用中之外,没有其他方法。再说一次,添加 10 个引用会花费您什么,3 分钟?
我想提出两种解决方案首先,可以将引用的 dll 放入libdllreferenced
文件夹,并将其提交到存储所有项目的源代码管理。 然后,您可以从存储库中的任何项目引用此 dll,并且该 dll 将复制到每个项目的binDebug
或binRelease
。
若要获取要在解决方案中使用的新 dll 版本,只需将新的 dll 版本放在libdllreferenced
文件夹中,所有项目都将获得此更新的 dll。
但是,在源代码管理中存储 dll 并不是最佳方法,因此您可以尝试另一种方法: 创建包含 DLL 的 NuGet 包。然后,可以使用标准 NuGet 包版本控制轻松管理包版本。可以将对此包的引用置于任何解决方案中的任何项目,VS 将在生成期间自动解析它。
若要将包传递到编译源代码的计算机,需要使用某些存储库来存储 nuget 包。它可以是 nuget 服务器(如 http://nuget.org(或组织中的共享文件夹。下面介绍如何为非托管 dll 创建 nuget。