如何处理添加DLL所需的包(不直接用于当前解决方案)

时间:2017-10-25 11:10:21

标签: c# nuget

有一个使用包的共享解决方案(通过nuget获得,例如Elmah)。此解决方案生成DLL。

我有几个想要使用这些dll的解决方案。我通过“添加参考”添加了它们。

当我在每个解决方案上安装了我的nuget包时,这是有效的,但是当我从后代卸载它时 - 它无法找到它。我理解为什么(它不会复制带有来自sharedSolution的包的文件夹,只生成DLL),但我想知道在这种情况下最佳做法是什么?

1 个答案:

答案 0 :(得分:0)

如果您希望手动管理在多个解决方案中共享的DLL ,则步骤如下:

  1. 将NuGet包加载到您的某个解决方案后,导航到包位置并将所有必需的DLL(带有支持的XML文件,如果有的话)复制到单独的文件夹(例如Vendors \ SharedPackage。 Version1 < /强>)。
  2. 卸载NuGet包。
  3. 现在使用“添加引用”,导航到您在步骤1中复制SharedPackage的位置(Vendors \ SharedPackage。 Version1 文件夹),并将所需的引用添加到所需的所有项目和解决方案。
  4. 注意:如果沿着这条路走下去,你必须手动管理所有的SharedPackage更新:通过NuGet获取更新的包,将包内容复制到一个单独的文件夹(Vendors \ SharedPackage。 Version2 ),卸载软件包,从所有解决方案中的所有项目中删除对旧软件包的引用,添加对新版本SharedPackage的引用。

    或者,如果您想要使用Visual Studio管理的 NuGet包this thread是我在此主题上可以找到的最佳信息来源。 Vermis做了很棒的研究工作!

    P.S。 Imho,手动解决方案更易于实施,但难以维护。决定取决于你。