如何重命名Xamarin跨平台应用?VS2017项目改名求助
彻底搞定Xamarin.Forms跨平台项目重命名(VS2017版)
我太懂这种麻烦了——Xamarin.Forms的跨平台项目因为绑定了4个子项目,单纯右键重命名解决方案和项目根本不够,总会有遗漏的配置导致改名失败。我给你整理了一套完整的步骤,跟着来就能彻底改好:
第一步:先关闭Visual Studio!
别嫌麻烦,不关闭的话很多文件会被锁定,根本改不了内容。
第二步:修改文件系统里的文件夹和文件名
找到你的项目根目录:
- 把4个项目的文件夹分别改成新名称(比如原
OldApp→NewApp,OldApp.Android→NewApp.Android) - 把根目录下的
.sln解决方案文件也改成新名称
第三步:修改解决方案文件内容
用记事本或者VS的代码编辑器打开修改后的.sln文件:
- 全局替换所有旧项目名称,包括项目路径和项目名部分。比如把:
改成:Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OldApp", "OldApp\OldApp.csproj", "{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NewApp", "NewApp\NewApp.csproj", "{XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" - 保存后关闭
.sln文件
第四步:逐个修改项目文件内容
打开每个项目的.csproj(核心项目)、.Android.csproj、.iOS.csproj、.UWP.csproj文件:
- 找到
<RootNamespace>和<AssemblyName>标签,把里面的旧名称替换成新名称 - 查找所有引用旧项目的路径和名称(比如子项目对核心项目的引用),全部替换成新的
- 每个项目文件修改完都要保存
第五步:处理各平台的特殊配置
- Android项目:打开
Properties/AndroidManifest.xml,把package属性改成新的包名;再检查Resources/values/Strings.xml里的app_name是否需要同步修改 - iOS项目:打开
Info.plist,修改CFBundleDisplayName(应用显示名)和CFBundleIdentifier(包标识符);还要去项目属性里确认Bundle Identifier已经更新 - UWP项目:打开
Package.appxmanifest,修改Display name和Package name
第六步:重新打开解决方案收尾
- 双击修改后的
.sln文件打开VS2017 - 右键解决方案→重命名(确保和文件名一致),再逐个右键子项目→重命名
- 先执行
Build > Clean Solution清理旧缓存,再Build > Rebuild Solution重新生成 - 如果还有编译错误,大概率是代码里的命名空间没替换,用VS的编辑 > 查找和替换 > 快速替换,勾选「全解决方案」,把
using OldApp;全局替换成using NewApp;
最后提个小细节:如果项目里有NuGet包引用,偶尔会出现引用路径错误,这时候右键解决方案→管理NuGet程序包,重新安装一遍相关包就能解决。
内容的提问来源于stack exchange,提问作者Juansero29
相关产品推荐
相关产品推荐

