c# - 如何用本地构建临时替换 NuGet 引用

标签 c# nuget

我正在使用 Visual Studio 2015 开发一个 C# 项目,并使用 NuGet 进行包管理。作为引用,我想在迭代修复时暂时使用本地构建,而不是发布版本。实现此目标的最佳方法是什么?

如果我使用的是外部 SVN,我会将本地构建的新副本放入外部引用的文件夹中,然后进行设置。其他包管理软件(如 CocoaPods)允许我指向本地目录来解析引用。使用 NuGet,看起来没有任何机制。

当我尝试将我的新 DLL 放到 packages 文件夹中的包引用上时,我在 Visual Studio 中出现不一致的行为。我的构建将因数百个错误而失败,其中大部分很快就会从错误列表中消失。我最终留下了一条警告,告诉我它无法解析对我要替换的程序集的引用(尽管引用的属性确实表明它正在寻找我的新版本)。

最佳答案

我发现以下解决方法对我有用:

首先,我从解决方案的上下文菜单中禁用“NuGet 包还原”。

之后,我转到 %HOMEPATH%\.nuget\packages 文件夹,并搜索我要替换的包。我从这个包中获取版本号,并使用这个确切的版本号来构建我想要交换的 dll。

之后,我可以将 packages 文件夹中的 dll 与这个新建的 dll 进行交换。现在构建项目使用这个新的 dll。

设置一次后,我可以轻松构建新的 dll,并将它们复制到 packages 文件夹。

关于c# - 如何用本地构建临时替换 NuGet 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32482746/

相关文章:

c# - 无法加载文件或程序集 ICSharpCode.SharpZipLib ...使用 nuGet 包 ExcelDataReader 时

c# - .NET 中的对象相等性

c# - 绑定(bind)到 WPF Canvas 上元素的 X Y 坐标

c# - 使用Nuget时有没有简单的方法可以关闭包含多语言包?

c# - 通过构建服务器 "unable to find version"进行 Nuget 还原

eclipse - 是否有 Eclipse 的 NuGet 等效项

c# - 使用 Json.Net 查询带有过滤器的 Json

c# - 在 C# 中执行不同事件的多个按键

c# - 在 gridview winform 中设置数据源后无法添加新行

NuGet 包管理器控制台默认项目下拉列表为空