2014-04-25 130 views
0

我有C#.NET4库项目我想在Windows应用商店中使用。由于不支持.NET版本,因此我无法直接引用此DLL,因此我正在考虑编写Windows应用商店应用库,该库将围绕对C#(.NET4)库的调用进行封装。有关如何实现这一目标的任何提示?在Windows应用商店应用中使用C#4.0库

S.O.S

非常感谢!

回答

1

它不是只是包装和引用库,它是关于缺乏一些基本的类型,方法,扩展等运行时/框架的Windows Store应用的版本中,将禁止你的只是包装/链接完整的.NET 4库程序集。您将无法为不兼容的平台构建/链接它,即使您可以构建它,它也不会在该平台的CLR上执行。由于您必须创建特定的Windows应用程序项目,因此Visual Studio会将对特定.NET框架的引用添加到您的项目中,并且在编译时您甚至无法构建该项目,因为.NET 4程序集将会引用不在项目中的依赖关系,也不与运行时目标兼容。

什么你的建议(包装)就像我说:“我有这样的Windows库,我想在Linux上使用,我可以在一个层包裹的电话,然后在Linux上部署?”答案是“没有(1)仿真,或者(2)重新实现”。当然,CLR/.NET字节码比Linux和Windows更兼容,但这个概念仍然是一样的。一个版本的CLR/Framework!=另一个版本。目标运行时环境中只有普通的类型/库调用。

您将需要可能需要创建一个替代实现的库。

我可以建议的最好的方法是使用Reflector或dotPeek等工具来反编译.NET4程序集,并查看它可以粘贴到便携式或Windows应用商店应用程序项目中。请记住,如果这是第三方商业图书馆,则可能违反许可协议,这取决于您。

该指南与当量为平台,以替换丢失的部分:http://msdn.microsoft.com/library/windows/apps/br230302.aspx#general

由于它在引导说,你也可以创建一个可移植类库项目开发可以使用.NET Framework库从Windows应用商店应用,但您仍然限于可移植的API的子集。如果您使用Reflector实现上述方法,您可能会发现.NET 4程序集没有使用任何重要的非可移植框架类型/引用,并且可以轻松地重新编译。另一方面,也可能是相反的情况。

+0

感谢您的回答。其实,图书馆是我自己的,所以我有资源,但是当我试图重新编译时,我失败了,因为它非常复杂并且有很多依赖关系。 – user969153

+0

此外,使用便携式库,您事实上只能选择“重写”所有内容,因为便携式库只能引用可移植库。 – user969153

+0

有趣。如果有意义的话,我可能会建议你采取一种缓慢的,有条不紊的方法,并将你的图书馆分成子图书馆。然后,一旦您在.NET 4.0下执行此操作,请尝试在当时移植一个。有时一次移动大量代码可能会让你感到压力,让你处于编译错误的状态,而不是立即解决问题。 – codenheim