【问题标题】:Google Drive SDK for Portable Libraries用于便携式库的 Google Drive SDK
【发布时间】:2013-04-01 09:03:56
【问题描述】:

我正在为 Winforms 创建一个应用程序。我计划稍后为 Windows Phone 发布此应用程序。所以我决定使用便携式库。我的便携式库有以下目标框架:

.NET Framework 4 and higher
Silverlight 4 and higher
Windows Phone 7 and higher
.NET for Windows Store apps

在我的可移植库中,我引用了来自 Google drive SDK 的以下库:

DotNetOpenAuth.dll
Google.Apis.Authentication.OAuth2.dll
Google.Apis.dll
Google.Apis.Drive.V2.dll
Google.Apis.OAuth2.V2.dll
log4net.dll
Newtonsoft.Json.Net35.dll

到目前为止,当我构建我的解决方案时,它工作正常,因为我在任何地方都有这些参考。但是当我在我的代码中使用这些引用时:

using Google.Apis.Authentication;
using File = Google.Apis.Drive.v2.Data.File;
public interface IUtilities
{
    void SampleMethod(IAuthenticator authenticator, File file);
}

现在,我没有编译错误。但是,当我尝试构建解决方案时,我得到了关注

Error   1   The type or namespace name 'IAuthenticator' could not be found (are you missing a using directive or an assembly reference?)

Error   3   The type or namespace name 'Google' could not be found (are you missing a using directive or an assembly reference?)

如果我使用这些库编写更多代码,所有这些对象都会以类似的方式出错。谁能帮我理解这一点?如果您需要更多信息,请告诉我。谢谢。

【问题讨论】:

    标签: .net google-drive-api portable-class-library


    【解决方案1】:

    您从可移植类库中引用的任何库也必须是可移植的(并且支持兼容的平台)。 Json.NET 有一个可移植版本,但您使用的其他库可能没有。您可以获取这些库的源代码并将它们移植到 PCL,或者您可以为它们提供的功能创建可移植抽象,并使用这些抽象来调用特定于平台的代码。

    以下是有关使用可移植类库的更多信息的一些来源:

    【讨论】:

    • Daniel:但我相信如果在 PCL 中引用了非 PCL,我们应该会得到编译错误。或者它不应该允许我们引用它们。我试过这个。但我不确定,为什么会出现运行时错误。但是,我将查看给定的参考资料,尽管我之前访问过其中的几个,而且访问过更多。但这一次,会更加认真地看待他们。谢谢
    • @rapsalands 是的,当您尝试引用无效的 DLL 时出现错误是合理的。如果尝试添加不受支持的项目到项目引用,或者尝试添加对不支持目标平台的 NuGet 包的引用,则会收到错误消息。对 DLL 的文件引用是唯一不会出错的情况。随着时间的推移,我认为更多的库会迁移到 NuGet,这样问题就会减少。
    • 我明白你的意思。但是我怎么能知道哪个功能导致构建失败。我的意思是,如果我遇到编译错误,那么我可以在界面中迁移这些部分。但如果没有错误,那么很难选择导致我的解决方案失败的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多