将.NET Framework版本4.5.1定位到通用Windows 10的项目

时间:2015-09-24 09:54:34

标签: c# .net visual-studio win-universal-app

我是初学者,我使用Visual Studio在C#中开发了一个工作项目。我针对.NET Framework 4.5.1版的项目,它工作正常。由于它是用C#编写的,我想扩展它以使其适用于每个Windows设备

我面临的问题如下。在我原来的项目中,我有:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.Linq;
using System.Media; // for playing sounds
using System.Reflection;
using System.Resources;
using System.Threading;
using System.Windows.Forms;
using System.Runtime.InteropServices;

他们没有遇到任何问题。如果我在构建新解决方案时在Windows Universal Platform版本中添加相同的行,例如我[我将在多个错误中只添加两个错误]:

  

错误CS0234类型或命名空间名称'绘图'命名空间中不存在'系统' (您是否缺少程序集引用?)TestProgram C:\ Users \ Antonino \ documents \ visual studio2015 \ Projects \ TestProgram \ TestProgram \ MainPage.xaml.cs 6

  

错误CS0246类型或命名空间名称' ToolStripMenuItem'找不到(你错过了使用指令或程序集引用吗?)TestProgram C:\ Users \ Antonino \ documents \ visual studio 2015 \ Projects \ TestProgram \ TestProgram \ MainPage.xaml.cs 80

即使在开发通用Windows应用程序时,是否有一种智能方法可以以简单的方式识别这些丢失的文件?请不要告诉我必须重写整个项目

提前感谢那些愿意提供帮助的人 安东尼

1 个答案:

答案 0 :(得分:1)

这里的问题不是框架版本,而是Universal Apps可用的简化框架API。 Windows Universal应用程序与完整的.NET框架不具有相同的命名空间,类和API的覆盖范围,因此,您无法重用来自完整.net的所有内容(例如System.Drawing)在一个环球项目中。

但是,你不一定要重写整个事情。相反,你想要做的是将特定于平台的行为抽象到一个接口,只有那部分必须被重写。

换句话说,可以使用所有框架中可用的类重用全局行为,UI和交互,通常由可移植类库(PCL)和应用程序的每个版本(Winforms,Universal,Xamarin等)表示。将重用该共享库用于"核心"应用程序和UI(以及特定于平台的行为)将是您要在每个版本的应用程序中单独实现的唯一部分。

我不确定这是否完全回答了你的问题,但我希望这有用。