我是Windows 8 App Store开发的新手,并且遇到了一些奇怪的事情。
如果我创建一个普通的.net库(签名库)并尝试将其添加到我的Windows应用商店应用程序,Visual Studio 2012就会呻吟我无法添加此项目。两个项目都在同一个解决方案中。
这个项目包含对System.Net程序集的引用,因为我使用了那里的一些类型。我知道System.Net不是完全支持的命名空间。 TcpClient,NetworkStream等都被删除了。我也知道Windows.Networking命名空间中的StreamSocket,DataReader和DataWriter是替代方案。
在我失去你之前,让我谈谈这一点。我不是从这个项目中添加已编译的程序集作为Windows应用程序的项目引用,而是在我的硬盘驱动器上浏览已编译的程序集并直接引用该程序集。
令我惊讶的是,这有效!这引出了以下问题:
答案 0 :(得分:0)
有几种方法可以将程序集引用添加到项目中:
在同一解决方案中为项目添加程序集引用。 浏览硬盘驱动器上的某个组件。
在Visual Studio 2012中,如果向WinRT项目添加不符合要求的WinRT程序集引用,Visual Studio 2012将不允许它。
但是,如果通过浏览硬盘驱动器将相同的程序集添加到WinRT项目,则会成功引用程序集。仅当引用的程序集使用强键签名时才有效。我不确定这是产品中的缺陷还是故意的。
Microsoft通过认证通过Windows应用商店应用程序后,可以弥补这个缺陷(如果它实际上是一个)。认证失败,因为它识别出项目中引用了一个不适合Windows App Store产品的程序集。
总而言之,您不能在WinRT项目中引用WinRT程序集。这样做的缺点是您的应用程序将无法通过Windows App Store验证。这样做的好处是,如果您不开发Windows App Store产品,则可以重复使用已经完成的工作。