使用A
WinForm
应用程序,我想模仿这个
sample
来自Microsoft的Github站点,该站点演示如何使用Windows运行时打包API获取包信息。
我在第行收到以下错误:
Package package = Package.Current;
,当试图从
WiFraseApp
:
找不到类型或命名空间名称“package”(是否缺少using指令或程序集引用?)
问题
:尽管这个错误是一个著名的C错误,它有许多在线文章/解决方案,但是这里的上下文是不同的。编译器似乎在抱怨我缺少
Package class
. 但我确实有
using Windows.ApplicationModel;
在下面的代码中使用语句。那么,错误的可能原因是什么,也就是说,这里可能缺少什么?
注释
:为了确保包含所需的程序集,我安装了此程序集
UWPDesktop
上的WinForm项目中的Nuget包
VS2017-ver 15.9.5
在
Windows 10 Pro - Ver 8109
:
WiFraseApp
:相关代码
throws error
在线:
package package=package.current;
using System;
using System.Windows.Forms;
using Windows.ApplicationModel; //I added from here
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using Windows.ApplicationModel.Background;
using Windows.Foundation.Collections;
using Windows.Storage;
using Windows.Storage.Search;
using Windows.UI.Xaml;
using Windows.Management.Deployment;
namespace WinForms_to_UWP
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Package package = Package.Current;
PackageId packageId = package.Id;
Console.WriteLine(packageId.FullName);
}
}
}
来自Github的UWP示例项目
:来自的相关代码
scenario1_identity.xaml.cs
很好用:
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;
using SDKTemplate;
using System;
using Windows.ApplicationModel;
namespace SDKTemplate
{
void GetPackage_Click(Object sender, RoutedEventArgs e)
{
Package package = Package.Current;
PackageId packageId = package.Id;
String output = String.Format("Name: \"{0}\"\n" + packageId.FullName);
OutputTextBlock.Text = output;
}
更新
:
同样值得注意的是,添加时
Using Windows.....
上面的陈述,
VS intellisense
只承认
Window.Foundation
和
Window.UI.
声明。为他人
使用Windows…..
我必须硬编码的声明-例如,
Windows.ApplicationModel;
. 然而
VS2017
我硬编码的时候没有抱怨。此外,所有
Using
以开头的语句
Windows.
灰显,如下图所示。不确定是否与错误有关: