NuGet 包管理器有问题。我发布了我的库(一个类型提供程序,但我认为这并不重要)然后测试它,但它找不到依赖项。完整的错误消息是(为简洁起见,省略了完整的命名空间/名称):
The type provider 'TypeProviderImplementation....' reported an error:
Could not load file or assembly 'dotNetRDF', Version=1.0.3.0, Culture=neutral, PublicKeyToken=...' or one of its dependencies.
问题是在安装库时,看起来依赖项已正确安装。下载了正确的库,并且没有出现错误。为了解决这个问题,我在 .nuspec 文件中指定了确切的版本,但这并没有改变任何东西。...
通过 NuGet 安装 dotNetRDF,然后手动引用我的预编译 DLL(不通过 NuGet)似乎工作正常。
所以我基本上不知道如何解决甚至调试问题。我很感谢任何指示。
添加有关 .NET 版本号的更多信息,因为我在下面的评论很难阅读:
我按照建议检查了框架版本。我通过查看对象浏览器中的 FrameworkDisplayName 来做到这一点。基本上,我的库使用的是 4.5,而 dotNetRDF 使用的是 4.0。
我切换到 .NET 4.0,但没有任何改变。
- 我的库 =“.NET Framework 4”
- dotNetRDF = ".NET 框架 4"
- HtmlAgilityPack = ".NET 框架 4.5"
- Newtonsoft.Json = ".NET 框架 4.5"
- VDS.Common = ".NET Framework 4 客户端配置文件"
我的依赖是dotNetRDF,剩下的是dotNetRDF的依赖。
最新的 NuSpec 文件可以在这里找到。我通过命令nuget pack LITEQ.fsproj -Prop Configuration=Release创建包。
包 id 是LITEQ.RDF。
一些附加信息: 该库是一个 F# 项目。我刚刚测试了如果我创建一个控制台项目并通过 NuGet 安装库然后将引用发送到 F# 交互式控制台会发生什么。它实际上在这种情况下有效。
所以感觉通过NuGet安装库后项目配置有问题。
要重现错误,请下载库,打开 UniKo.West.Liteq 命名空间,例如使用 NpqlTypeProvider:
open Uniko.West.Liteq
type A = NpqlRdfProvider< @"">