确保在Visual Studio中为Windows Phone正确设置引用

3

Visual Studio Ultimate 2013 v12... 更新5,.NET v4.6...

初次接触使用 Visual Studio 编程 Windows Phone

设置:文件 > 新建项目 > 模板 > Visual Basic > 商店应用程序 > Windows Phone 应用程序 > 空白应用程序 (Windows Phone)

为了简单明了地解决特定问题,采取以下步骤:

已采取的步骤:在模板项目的 MainPage.xaml 中,将以下行(属性)添加到开头的 < page > 元素。

xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

项目已经成功构建。然后,将开放元素从以下内容更改:
< Page > to < phone:PhoneApplicationPage >

错误信息:

The name "PhoneApplicationPage" does not exist in the namespace "clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone".
and
Unknown type 'PhoneApplicationPage' in XML namespace 'clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone'
'Sub Main' was not found in 'App1'.
'InitializeComponent' is not declared. It may be inaccessible due to its protection level.

我列出了所有错误,以防我误解构建试图告诉我的内容。我认为问题在于参考,其他错误是参考问题的结果。如果反过来,请让我知道。
我从我正在学习WPF的书中下载了一个C#电话项目的源代码。使用 < phone:PhoneApplicationPage > 开始元素可以很好地构建它。我认为这意味着库实际上已经在开发PC上。
我认为这是一个简单的问题,只需要确保正确设置项目引用,但是尝试修复一段时间后,我无法弄清楚。
在我的研究中,我发现从Windows Phone 8到Windows Phone 8.1某些事情发生了变化。Package.appxmanifest似乎是设置先前在XAML中设置的许多东西的地方,但我没有看到启用 < phone:PhoneApplicationPage > 的地方;我想这确实需要通过适当的Reference来处理。
我对两个项目(下载的C#代码和我的VB模板代码)进行的研究揭示了Solution Explorer References节点中的差异,其中在C#项目中说:
.NET for Windows Phone
Windows Phone

在VB模板代码中,它说:
.NET for Windows Store apps
Windows Phone 8.1

当我查看对象浏览器时,我可以找到Microsoft.Phone以及其所有子级,包括包括PhoneApplicationFrame的Microsoft.Phone.Controls。
因此,我不明白为什么我不能在这个基本内置模板项目中使用该类。
我对引用有足够的了解,但显然并不是专家。 我不知道接下来该怎么做。
2个回答

0

我最初使用VS 2013时也遇到了同样的问题。我不得不重新安装Windows Phone 8.1 SDK。这很耗时,也很愚蠢,但对我有用。

注意:现在VS 2015 Community可用,并且所有安装程序/工具/SDK都是内置的,如果您安装了VS 2015,它应该可以正常工作。我并不是说您应该安装VS 2015,但如果您想要,可以这样做。


我需要先卸载任何东西,还是直接在原有的基础上重新安装就可以了? - Alan
使用控制面板中的修复功能,它应该可以解决这个问题。 - AVK
我原以为那就是问题所在了,但是程序和功能显示Visual Studio 2013更新到了第3个版本,而实际上已经更新到了第5个版本,这让我对我之前来回升级的做法感到担忧。因此,我决定重新安装更新到第5个版本的VS 2015,然后再从那里开始 - 或者可能是VS2015。我会回报结果的。我实际上已经重新加载了Phone 8.1 SDK更新1,但事情并没有改变。 - Alan

0
问题在于尝试在Windows Phone 8.1项目中使用microsoft.phone.controls库。显然,该库只能在Windows Phone 8项目中使用。
要获得Windows Phone 8项目,可以选择Silverlight模板,在命名和单击初始项目设置期间提供操作系统选择。当选择Windows 8时,开头元素运行良好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接