Visual studio 为Windows 8 Metro和Windows Phone设置项目/解决方案的最佳方式是什么?

Visual studio 为Windows 8 Metro和Windows Phone设置项目/解决方案的最佳方式是什么?,visual-studio,windows-8,windows-runtime,microsoft-metro,windows-phone,Visual Studio,Windows 8,Windows Runtime,Microsoft Metro,Windows Phone,将Windows Phone应用程序移植到Metro似乎有相当多的内容,但是如果您是从零开始,并且希望构建一个在两种平台上运行的应用程序,该怎么办 据我所知,Windows Phone开发人员在Win7上使用VS2010,但Metro开发人员在Win8上需要VS2012 RC。有办法同时处理这两个问题吗?Windows Phone SDK在Windows 8的VS2012上运行正常吗 是否可以在一个解决方案中,在一个可移植类库中,同时为应用程序和共享代码创建一个单独的项目?我自己还没有这样做的环

将Windows Phone应用程序移植到Metro似乎有相当多的内容,但是如果您是从零开始,并且希望构建一个在两种平台上运行的应用程序,该怎么办

据我所知,Windows Phone开发人员在Win7上使用VS2010,但Metro开发人员在Win8上需要VS2012 RC。有办法同时处理这两个问题吗?Windows Phone SDK在Windows 8的VS2012上运行正常吗


是否可以在一个解决方案中,在一个可移植类库中,同时为应用程序和共享代码创建一个单独的项目?

我自己还没有这样做的环境,因此这充其量只是基于互联网研究的部分答案,加上我自己的一些相关经验

根据,VS2012 RC不能与当前的Windows Phone SDK一起使用,而当前的Windows Phone SDK仍然需要VS2010。您提到的例外情况是,它似乎能够创建与Windows Phone 7+兼容的库。然而,要在实际的WP7应用程序中使用它们,您需要在VS2010中的适当WP项目中引用它们。因此,如果PCL不足以满足您的需求,并且您希望实际的目标特定项目具有共享代码,那么VS2012本身就不是一个选项

但是,这个故事中还有一些片段可能会引起兴趣,也可能会对你有所帮助

第一个是VS2012新增的。VS解决方案可以包含项目,即使您使用的VS版本无法加载这些项目,这意味着您可能可以构建一个解决方案,该解决方案可能同时包含VS2012 Metro项目和VS2010 WP7项目。在任何一种情况下,项目都将无法加载,这取决于您使用的工具的版本

这仍然有价值的原因是,您还可以创建共享代码的项目,以便将相同的代码库编译为通常不兼容的项目类型,即使它们不是可移植类库

它的工作方式是,您可以独立于任何项目创建代码文件,也可以使用某个给定类型的项目作为基线,然后将代码文件链接到其他项目和应用程序中。在这种情况下,您可能需要VS2010 WPF或Silverlight 5项目,因为这两个版本都可以打开这些项目。然后,首先,在这个项目旁边创建Metro和WP7项目,不需要代码。接下来,使用解决方案资源管理器的“添加现有项”对话框从基线项目中选择文件,但不要单击“添加”。单击“添加”按钮旁边的向下箭头,您将可以选择“添加为链接”,这正是您所需要的

在两个项目中重复此过程将允许在一个版本中开发的任何代码或资产流向另一个版本。此外,如果需要修改或调试基线文件,可以在VS的任何一个版本中进行,因为基线项目在任何一个版本中都可以工作

这个故事的最后一部分是,您可以使用条件编译符号和if预处理器指令进一步调整任何共享代码,这些代码必须根据目标进行发散。然而,为了每个人的理智,这一点应该少用

实际上,我已经在VS2010中以这种方式在WP7、Silverlight和其他项目之间共享了代码,并且在需要的地方工作得非常好

所以,你仍然需要切换IDE来编译和部署你的Metro应用程序和WP应用程序,但从理论上讲,我认为有很多协同作用,你可以,事实上,挤压出VS,即使在它目前的形式

今日新资讯


在旧金山的Windows Phone峰会上,微软宣布Visual Studio 2012将能够编写针对Windows 8和Windows Phone 7.5/8的应用程序。这似乎改变了上面给出的信息,并提供了一个明显而简单的解决方案。因此,您还没有这一点,但请在将来注意它。

一种方法,例如所使用的方法是使用链接的源文件,共享可以共享的内容,以及分支需要更改的内容。这似乎是一种简单的方法,可以跨所有平台进行维护