Visual Studio 2017中安装Xamarin.Forms 3 NuGet包后如何适配所有新解决方案?
先明确回答你的第一个疑问:
将包安装到现有解决方案后,是否仅该解决方案可使用Xamarin.Forms 3?
没错,NuGet包是绑定到具体解决方案/项目的。当你在某个解决方案里安装Xamarin.Forms 3时,只有这个解决方案内的项目会引用该版本包,其他已存在或新创建的解决方案,默认还是会使用VS原本自带的Xamarin.Forms版本。
接下来针对你「让未来所有新解决方案默认使用Xamarin.Forms 3」的需求,分享几个实用方法:
修改官方项目模板(需管理员权限)
找到VS2017中Xamarin.Forms模板的安装路径(根据你的VS版本和安装位置调整,示例路径如下):C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates\VisualCSharp\Mobile Apps
打开你常用的模板文件夹(比如BlankAppXamarinFormsCSharp),里面包含模板项目的源文件。打开这个项目,通过NuGet将Xamarin.Forms升级到3.x版本,保存后覆盖原模板文件即可。注意:后续VS的版本更新可能会重置这些模板,届时需要重新操作。创建自定义用户模板(更稳妥)
先新建一个空白Xamarin.Forms项目,通过NuGet将其升级到Xamarin.Forms 3,确保所有平台项目(iOS、Android、UWP等)都同步更新到相同版本。然后在VS顶部菜单选择Project > Export Template,按照向导将这个配置好的项目导出为用户模板。之后创建新项目时,就能在「已安装」模板列表里找到这个自定义模板,用它创建的项目默认就是Xamarin.Forms 3版本。设置NuGet默认拉取最新稳定版
打开VS的Tools > Options > NuGet Package Manager > Default Package Management Settings,把「默认包版本」设置为「Latest Stable」。这样新创建项目时,NuGet会自动尝试安装最新的稳定版Xamarin.Forms(如果3.x是当前最新稳定版的话)。不过这个方法有个小缺点:如果之后Xamarin发布了更高版本,新项目会自动切换到更高版本,无法固定在3.x。
最后提醒一句:给现有解决方案升级Xamarin.Forms 3时,一定要把解决方案内所有关联项目(共享库、各平台项目)都统一升级到相同的3.x版本,避免出现版本兼容性问题。
内容的提问来源于stack exchange,提问作者Spacewalker

