在VS 2013中缺少目标

时间:2015-02-24 00:01:28

标签: c# visual-studio visual-studio-2013

我正在编译谷歌应用程序API,但我还没有看到它在我失踪的地方。

Properties of project

.net和Windows 8 / 8.1都列出了但没有别的。我在Windows 7计算机上运行VS 2013。

因此,当我进入项目的引用时,我错过了所有原始的微软引用(即使我去添加它们,也没有什么可供选择)。

例如,我得到的错误是:警告2主要参考" System.IO",这是一个框架程序集,无法在当前目标框架中解析。 " .NETPortable,版本= 4.0版,档案=规范5&#34 ;.要解决此问题,请删除引用" System.IO"或者将您的应用程序重新定位到包含" System.IO"的框架版本。 Google.Apis.Admin.Directory.directory_v1

我不确定为什么当我选择它们(或者不允许我编译)时,以及所有其他微软API都没有显示出来。我认为这是因为.netportable以及我不在Windows 8.x计算机上的事实。

任何人都知道如何更改目标?我无论如何都看不到这样做。

1 个答案:

答案 0 :(得分:1)

你所拥有的是Portable Class Library。它缺少许多Windows原生的名称空间和功能;基本上,PCL被简化为可以在所有目标平台上运行的.NET的最小功能集 对于许多缺少的命名空间,有替换PCL;如果没有,您可以在PCL中定义接口(并在特定于平台的代码中实现它们),这些接口充当"桥接器#34;在PCL和例如PCL之间Win32上的System.IO命名空间。

简单示例:您在PCL中使用IFileIOWriteFile(...)定义ReadFile(...);然后,每个使用PCL的项目(例如:WindowsIO Windows)都有一个实现IFileIO的类,并在相应的函数中执行System.IO调用。
然后将Windows特定的实现与PCL接口结合起来;想象一下,你有一个ImageConverter类,可以读取,修改和写入图像。它的构造函数接受IFileIO,您可以在其中传递WindowsIO实例(或Win8IO,或AndroidIO,或......)。 ImageConverter仅使用界面,并不关心实现。