更新 201521011559:我想知道这是否是由用于构建包的 .nuspec 文件中的依赖项规范中的错误引起的...
客户端 SDK 的 .nuspec 文件位于 GoCardless 的 GitHub 存储库中
https://github.com/gocardless/gocardless-dotnet/blob/master/GoCardlessSdk/GoCardlessSdk.nuspec
并包括本节:
<dependencies>
<group targetFramework="net20">
<dependency id="Newtonsoft.Json" version="4.5.11"/>
<dependency id="RestSharp.Net2" version="1.1.11"/>
</group>
<!-- For reasons unknown, NuGet pack will not recognise targetFramework and tries to put all our deps into the default group.-->
<!--
<group targetFramework="net35">
<dependency id="Newtonsoft.Json" version="5.0.2"/>
<dependency id="RestSharp" version="104.1"/>
</group>
-->
</dependencies>
我是否认为这意味着无论目标项目的目标框架版本如何,它都会尝试安装 RestSharp.Net2?
原始问题:
我们的一个项目是一个 ASP.NET Web 应用程序 - 目标框架设置为 .NET 3.5,没有客户端配置文件或任何东西。
我刚刚安装了包含 GoCardless .NET SDK 的 NuGet 包(http://www.nuget.org/packages/GoCardless/)
PM> Install-Package GoCardless
它似乎工作正常。然后我在我的一个页面中添加了对 GoCardless.Sdk 的引用,项目拒绝编译:
找不到类型或命名空间名称“GoCardlessSdk”(您是否缺少 using 指令或程序集引用?)
真正奇怪的是,如果我删除引用,然后右键单击引用,添加引用,浏览到..\packages\GoCardless\lib\net35\
文件夹并选择GoCardlessSdk.dll
,我会收到此错误:
“GoCardlessSdk.dll”或其依赖项之一需要比项目中指定的版本更高的 .NET Framework 版本。您可以通过单击“项目”菜单上的“属性”,然后在“.NET Framework”下拉框中选择一个新目标来更改 .NET Framework 目标。
是否仍要在项目中添加对“GoCardlessSdk.dll”的引用?
我已经使用 NuGet 包资源管理器检查了包。它肯定同时公开了 .NET 2.0 和 .NET 3.5 版本;唯一的依赖项是 Newtonsoft.Json 和 RestSharp,它们都在 .NET 3.5 上运行良好。
我在 Windows 7 x64 上使用 Visual Studio 2010 Premium。这是 Visual Studio 问题、.NET 问题还是 GoCardless SDK NuGet 包的具体问题?