1

我最近为 Windows Phone 8 制作了一个应用程序,现在我希望能够在带有 WP7.x 的旧设备上运行它。这是否可能无需创建一个针对 WP7 而不是 WP8 的全新 Visual Studio 项目?我以 WP8 为目标,以确保我不会在可用功能上受到阻碍,但我认为我最终没有使用任何 WP7 中不可用的功能,所以现在我想扩展 WP7.x 兼容性。关于如何尽可能容易地实现这一点的任何提示?

4

3 回答 3

3

虽然没有自动方式将 WP8 项目“还原”为 WP7 项目,但可以通过编辑 .csproj 文件手动完成。

我目前没有方便的 Windows 8 系统,所以我不能确定涉及哪些项目,但查看 WP7 项目的项目文件,我(似乎)记得调整以下所有或部分行:

<SilverlightVersion>$(TargetFrameworkVersion)</SilverlightVersion>

<TargetFrameworkProfile>WindowsPhone71</TargetFrameworkProfile>

<TargetFrameworkIdentifier>Silverlight</TargetFrameworkIdentifier>

<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.$(TargetFrameworkProfile).Overrides.targets" />

<Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight for Phone\$(TargetFrameworkVersion)\Microsoft.Silverlight.CSharp.targets" />

如果没记错的话,WP8 项目文件包含类似的行,只需将它们替换为上面的行。WP7 项目文件和 WP8 项目文件之间的比较应该能让您顺利上路。当然,也可能存在需要删除或添加的依赖项。

否则,总是可以选择开始一个全新的项目:)

于 2013-02-04T13:38:44.313 回答
2

您需要创建一个新的 WP7 项目。可能有一种方法可以编辑您的项目和解决方案文件,但只需创建一个新的 WP7 项目并将现有代码添加到 t.

顺便提一句。你应该反过来做,从 WP7 开始,只有当你需要 WP8 中的(很少)新功能时才将项目升级到 WP8。

于 2013-02-04T13:37:53.010 回答
1

您将不可避免地必须创建另一个以 WP7.x 为目标的项目,
但这相对容易,尤其是在您不使用 WP8 专用功能的情况下。

为了提高可维护性,您应该考虑在项目之间共享可重用的代码文件,例如利用 Visual Studio 的“添加为链接”功能。

于 2013-02-04T13:37:19.407 回答