2013-01-03 38 views
1

我是新来的Windows 8 App Store开发人员,并且遇到了一些奇怪的事情。Windows 8 App Store开发 - 图书馆参考行为

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

该项目包含对System.Net程序集的引用,因为我使用了其中的一些类型。我知道System.Net不是完全支持的命名空间。 TcpClient,NetworkStream等都已被删除。我也知道Windows.Networking命名空间中的StreamSocket,DataReader和DataWriter是另一种选择。

在我松开你之前,让我明白这一点。作为对Windows应用商店应用程序的项目引用,我没有添加编译的程序集,而是在我的硬盘上浏览编译后的程序集,并直接引用程序集。

令我惊讶的是,这工作!这导致我有以下问题:

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

至于你的第一个问题,我认为这是一个缺陷,或某种漏洞。真正的问题是:你是否想通过尝试在不同的平台上使用其中一个引用的程序集(比如ARM架构?)来错过任何功能?当我读到第一个问题时,“为什么?”我以为你可能会问为什么限制。虽然这篇文章没有直接解决这个问题,但它仍然是一个很好的阅读:http://gamasutra.com/view/feature/179420/the_next_twenty_years_what_.php –

回答

0

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

添加组件参照相同的解决方案项目。 在您的硬盘驱动器的某处浏览程序集。

在Visual Studio 2012中,如果向WinRT项目添加不符合规范的WinRT程序集引用,Visual Studio 2012将不允许它。

但是,如果通过浏览硬盘驱动器将相同的程序集添加到WinRT项目中,则会成功引用程序集。这只适用于引用程序集使用强键签名的情况。我不确定这是产品中的缺陷还是故意的。

稍后,当通过认证传递Windows应用商店应用程序时,Microsoft弥补了此缺陷(如果它实际上是一个)。认证失败是因为它认识到项目中引用了程序集,该程序不适用于Windows App Store产品。

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