1

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

如果我创建一个普通的 .net 库(签名库)并尝试将其添加到我的 Windows 应用商店应用程序中,Visual Studio 2012 抱怨我无法添加此项目。两个项目都在同一个解决方案中。

这个项目包含对 System.Net 程序集的引用,因为我使用了那里的一些类型。我知道 System.Net 不是完全支持的命名空间。TcpClient、NetworkStream 等都已被删除。我也知道 Windows.Networking 命名空间中的 StreamSocket、DataReader 和 DataWriter 是替代方案。

在我失去你之前,让我进入正题。我没有从这个项目中添加已编译的程序集作为对 Windows Store 应用程序的项目引用,而是在我的硬盘驱动器上浏览已编译的程序集并直接引用该程序集。

令我惊讶的是,这奏效了!这导致我提出以下问题:

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

1 回答 1

0

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

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

在 Visual Studio 2012 中,如果将不兼容的 WinRT 程序集引用添加到 WinRT 项目,Visual Studio 2012 将不允许这样做。

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

稍后,当您的 Windows Store 应用程序通过认证时,Microsoft 会弥补这个缺陷(如果它确实存在的话)。认证失败,因为它识别出项目中引用了不适合 Windows App Store 产品的程序集。

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

于 2013-01-04T13:25:36.783 回答