Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 添加具有不同版本的库_C#_Dependencies_Version - Fatal编程技术网

C# 添加具有不同版本的库

C# 添加具有不同版本的库,c#,dependencies,version,C#,Dependencies,Version,我有一个项目,它使用了两个NuGet依赖项:FreeSpire.Doc和FreeSpire.Xls,它们都依赖于FreeSpire.Pdf库。问题是它们依赖于具有不同版本的库。在运行时,我得到了一个异常 未能从程序集“Spire.Pdf,版本=3.6.230.55040,区域性=中性,PublicKeyToken=663f351905198cb3”加载类型“3” 有没有办法在project中拥有两个版本的库?据我所知,同一个项目中不能有两个版本的NuGet软件包 如果指向较旧版本的可以与较新版本

我有一个项目,它使用了两个NuGet依赖项:FreeSpire.Doc和FreeSpire.Xls,它们都依赖于FreeSpire.Pdf库。问题是它们依赖于具有不同版本的库。在运行时,我得到了一个异常

未能从程序集“Spire.Pdf,版本=3.6.230.55040,区域性=中性,PublicKeyToken=663f351905198cb3”加载类型“3”


有没有办法在project中拥有两个版本的库?

据我所知,同一个项目中不能有两个版本的NuGet软件包

如果指向较旧版本的可以与较新版本一起使用,但它必须是一个丑陋的黑客,例如:

  • 手动添加所需的DLL作为参考(如果是开源项目,您甚至可以自己编译)

  • 将逻辑分为两个不同的项目,并始终在指向旧版本的项目之后构建指向新版本的项目

  • 如果您能够以某种方式将DLL安装到GAC中,您可能能够同时使用这两个版本运行


据我所知,同一个项目中不能有两个版本的NuGet软件包

如果指向较旧版本的可以与较新版本一起使用,但它必须是一个丑陋的黑客,例如:

  • 手动添加所需的DLL作为参考(如果是开源项目,您甚至可以自己编译)

  • 将逻辑分为两个不同的项目,并始终在指向旧版本的项目之后构建指向新版本的项目

  • 如果您能够以某种方式将DLL安装到GAC中,您可能能够同时使用这两个版本运行


1。它不是开源的;2.在这种情况下,一个仍将覆盖另一个;3.我无法使用GAC,因为clickonce部署不支持它。请尝试创建两个项目,每个包一个。编译它们并从每个输出文件夹获取每个包的程序集,但从使用较新版本的项目的输出文件夹获取共享程序集。最后,将它们作为常规引用添加到主项目中。这是一种黑客行为,当更新版本的软件包发布时,您需要手动更新程序集,但它可能会工作!1.它不是开源的;2.在这种情况下,一个仍将覆盖另一个;3.我无法使用GAC,因为clickonce部署不支持它。请尝试创建两个项目,每个包一个。编译它们并从每个输出文件夹获取每个包的程序集,但从使用较新版本的项目的输出文件夹获取共享程序集。最后,将它们作为常规引用添加到主项目中。这是一种黑客行为,当更新版本的软件包发布时,您需要手动更新程序集,但它可能会工作!