我们选择使用 nuget 来管理私有(private) (.NET) 库,但 DLL 的版本控制已经变得令人厌烦。
假设我们在两个项目中有以下共享库:
然后,在每个特定项目中,我们有:
我们现在遇到的问题是很难在特定项目中测试对 Shared_BLL 所做的更改。目前,我们必须:
这是非常困难的并且开销很大。
我们尝试了另一种方法,即暂时删除 DLL 引用并将其替换为对修改后的 DLL 的直接引用。但是,您必须撤消对项目的所有更改,这并不是特别好。
我在这里错过了什么吗?如果您在开发生命周期中使用 NuGet,您将如何处理 DLL?
更新:对于面临同样问题的人,我们已经远离 nuget,直到解决这个问题,并且依赖于将 DLL 放在特定文件夹中,并在每个项目文件的 HintPath 中使用绝对路径。生成事件会更新定义目录中的 DLL,并且可以调试 Shared 和 Project。
最佳答案
我看到您返回引用普通 DLL 而不是 nuget 包,但我决定回答。也许其他人会对我对这个话题的看法感兴趣。
最后,我对此进行了大量研究,发现了一些可用于解决在远程 nuget 引用和本地 nuget 引用之间切换的问题的事实。
可以调用 nuget update 来引用请求包的最新版本。
所以...例如,您有两个 nuget 存储库(远程和本地)。本地存储库是普通文件夹。
1.您从普通源构建 Project_Mvc 并从您拥有“生产构建”的远程存储库中自动恢复下载 Shared_BLL-1.0.0
2. 您决定在本地构建 Shared_BLL。当您在 IDE 中执行此操作时,它会生成
Shared_BLL.9.99.999.0 包。
3. 你调用更新和重建 Project_Mvc 并且瞧! Shared_BLL.9.99.999.0 现在是
在这里引用。
你写道这是很大的开销......它可以通过向 VS 解决方案添加额外的项目来自动完成。例如 _UpdatePackages 项目(空 C# 项目模板),它将始终位于解决方案项目列表的顶部。此外,这也可以向后完成。当您从本地提要中删除 Shared_BLL.9.99.999.0 并调用更新时 - 引用将替换为第 1 点中的引用。
处理此问题的另一种方法是使用 ripple .由于某些限制,我无法在我的项目中使用它,但在您的情况下可能没问题。
关于.net - 使用 Nuget 库进行开发和调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22690115/