我们最近设置了本地nuget服务器,以改善我们对项目中依赖项的处理。为了打包和推送我们的库,我们在Visual Studio中使用“新”项目格式,并使用一个名为NuPack-Nuget Packager的市场附加组件。
然后,用于开发的工作流程将创建一个新项目并提取所需的依赖项。
现在,我们在所有工作场所中都有一种奇怪的行为。
例如。我们有2个库:LibA(版本1.1.0)和LibB(版本2.5.0) LibB依赖LibA并将其引用为项目参考。 我的项目通过Nuget引用LibB(版本2.5.0)。
当我更改LibB(现在为2.5.1版)并将其推送到我们的Nuget并更新我的项目中的引用时,一切似乎都可以正常工作,该项目可以构建并且没有错误,但是在运行时,一旦执行了该代码,引用LibA(仍为1.1.0版,未进行任何更改)我得到FileNotFound异常:找不到程序集LibA,AssemblyVersion 1.1.0。
目前唯一的解决方法是将新的LibA打包为1.1.1版(无代码更改)并将其推送到nuget服务器,并将项目中的引用更新为1.1.1版。
有人知道原因/解决方案吗?
编辑不能解决问题的事物:
编辑确切的错误消息(程序集名称已更改)
System.IO.FileNotFoundException:'无法加载文件或程序集'Lib.A.Namespace.1.1,版本= 1.1.7,Culture =中性,PublicKeyToken =空'。 Das System kann die angegebene Datei nicht finden。'
最后一部分的翻译:“找不到文件”
编辑:所有依赖项都被编译为NetStandard2.0的AnyCPU
答案 0 :(得分:0)
已确定问题。 NuPack-Nuget Packager在这里“有毛病”。 对于将来遇到麻烦的人:
我们的问题是NuPack-Nuget包装机的工作方式。 尽管工作流程似乎很方便(设置Assemblyversion,设置输出dir,设置nuget服务器,完成),但将不会为包部署而构建项目,因此该项目依赖于先前的构建,该内部仍保留先前的AssemblyVersion。
在发现我们已经删除了过时的引用(位于User / .Nuget / Packages文件夹中)之后,我们终于找到了解决方案。
我们还没有为构建,打包和部署提供最终的一步式解决方案。