0

我们在 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 是我们方法的参数。

为解决问题而采取的步骤:

  1. Nito.AsyncEx.dll 使用相同的上述工具进行签名 - 相同的例外。
  2. Nito.AsyncEx 程序集已升级到最新版本 (2.1.3.0),实际上他们已经对其进行了调整并为其程序集使用了强名称 - 仍然没有运气。
  3. 此处提交的问题之一(https://github.com/box/box-windows-sdk-v2/issues/3)有类似的问题,我们尝试按照建议的方案进行操作,但没有太大帮助。
  4. 我们试图根本不签署我们的程序集,但再次徒劳无功,因为抛出了同样的异常。
  5. 我们还尝试按照此处的描述对 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,这是相当令人沮丧的。

任何帮助是极大的赞赏。

4

1 回答 1

1

Box 团队为我们提供了包含签名程序集的更新 SDK,效果非常好。

于 2014-01-31T20:53:06.793 回答