Windows 8应用商店开发-库引用行为

本文关键字:引用 开发 应用 Windows | 更新日期: 2023-09-27 17:50:40

我是Windows 8 App Store开发的新手,遇到了一些奇怪的事情。

如果我创建一个正常的。net库(签名库)并试图将其添加到我的Windows Store应用程序,Visual Studio 2012抱怨我不能添加这个项目。两个项目在同一个解决方案中。

该项目包含对系统的引用。Net程序集,因为我使用了那里的一些类型。我知道那个系统。Net不是一个完全受支持的名称空间。TcpClient, NetworkStream等都已被删除。我还知道Windows中的StreamSocket, DataReader和DataWriter。网络命名空间是另一种选择。

在我失去你之前,让我开门见山。我没有将此项目中的编译程序集作为项目引用添加到Windows Store应用程序,而是在硬盘驱动器上浏览已编译的程序集并直接引用该程序集。

令我惊讶的是,这有效!这让我想到了以下问题:

  • 为什么?这对我来说没有意义。请解释一下。
  • 另外,如果我使用这个库,Windows Store会拒绝我的应用程序吗?自己回答第二个问题…答案是肯定的!Windows认证应用程序,如果提到的库被引用,则不再将此识别为Windows商店应用程序。

Windows 8应用商店开发-库引用行为

有两种方法可以将程序集引用添加到项目中:

将程序集引用添加到同一解决方案中的项目。浏览硬盘驱动器上的某个程序集。

在Visual Studio 2012中,如果你将一个不兼容的WinRT程序集引用添加到WinRT项目中,Visual Studio 2012将不允许它。

但是,如果通过在硬盘上浏览将相同的程序集添加到WinRT项目,则会成功引用该程序集。这仅在引用的程序集使用强密钥签名时有效。我不确定这是产品本身的缺陷还是故意的。

微软弥补了这个缺陷(如果它实际上是一个)稍后通过认证时,你的Windows商店应用程序。认证失败是因为它承认项目中引用了一个不适合Windows App Store产品的程序集。

总之,你不能在你的WinRT项目中引用WinRT程序集。这样做的缺点是,你的应用将无法通过Windows app Store的验证。这样做的好处是,如果你没有开发Windows App Store产品,你可以重复使用你已经完成的工作。