我们在 VS 2010 Win7 x64 下有针对 .Net 4.0 的 WCF 项目,请注意它是一个签名程序集。Box.V2 SDK 已经通过 NuGet 安装,我们使用的版本是 1.0.5。
一旦我们尝试构建解决方案,坏事就开始发生,第一个问题是 Box.V2 dll 本身,由于以下错误,我们无法继续前进:
“程序集生成失败 - 引用的程序集 'Box.V2' 没有强名称”。
我们已经通过使用“Brutal Developer .NET Assembly Strong-Name Signer (1.3.0.0)”对程序集进行签名来克服这一问题。
成功构建后,我们遇到了第二个问题,而创建 BoxClient 会抛出异常并显示以下消息:
“无法加载文件或程序集 'Nito.AsyncEx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。需要强命名程序集。(来自 HRESULT 的异常:0x80131044)”。
我们使用以下代码来实例化客户端:
var config = new BoxConfig(clientId, clientSecret, new Uri(redirectUri));
var client = new BoxClient(config);
其中clientId、clinetSecret 和redirectUri 是我们方法的参数。
为解决问题而采取的步骤:
- Nito.AsyncEx.dll 使用相同的上述工具进行签名 - 相同的例外。
- Nito.AsyncEx 程序集已升级到最新版本 (2.1.3.0),实际上他们已经对其进行了调整并为其程序集使用了强名称 - 仍然没有运气。
- 此处提交的问题之一(https://github.com/box/box-windows-sdk-v2/issues/3)有类似的问题,我们尝试按照建议的方案进行操作,但没有太大帮助。
- 我们试图根本不签署我们的程序集,但再次徒劳无功,因为抛出了同样的异常。
- 我们还尝试按照此处的描述对 Box.V2.dll 进行调整和签名,但之后甚至无法构建它,因为引发了以下错误:
无法解析由类型“Box.V2.BoxClient”引用的程序集“System.Runtime,Version=2.6.3.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的基类或接口“System.Object”
无法解析“Box.V2.Config.BoxConfig”类型引用的程序集“System.Runtime,Version=2.6.3.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”中的基类或接口“System.Object”
所以我们目前被困在我们的产品中部署 Box API,这是相当令人沮丧的。
任何帮助是极大的赞赏。