Xamarin VS2017资源标识符重复及Live Player运行失败求助
你遇到的问题核心是移动XAML文件到子文件夹后,项目的资源注册、命名空间引用出现了冲突或不一致,导致Live Player无法正确加载最新的编译结果。试试下面这些针对性的解决方案:
1. 检查并修正文件的Build Action
移动文件后Visual Studio可能错误修改了文件的编译类型,这是资源冲突的常见原因:
- 右键子文件夹里的
App.xaml和MainPage.xaml→ 属性,确保Build Action设置为Page; - 对应的
.xaml.cs文件(比如App.xaml.cs)的Build Action要设置为Compile; - 确认根目录下没有残留的旧XAML文件(如果已经删除,跳过这步),避免重复注册。
2. 清理项目文件中的重复资源条目
手动编辑项目文件可以彻底解决资源标识符重复的问题:
- 右键项目 → 「编辑.csproj文件」;
- 搜索
App.xaml和MainPage.xaml,你会发现可能同时存在根目录和子文件夹的<Page>或<Compile>条目; - 删除根目录下的旧条目,只保留子文件夹中对应的条目,保存后重新加载项目。
3. 更新命名空间与引用路径
移动文件后命名空间不匹配会导致「找不到App类型」的错误:
- 打开
App.xaml.cs和MainPage.xaml.cs,把顶部的命名空间修改为包含子文件夹的路径(比如原命名空间是PDTHP,现在改成PDTHP.YourSubFolderName); - 打开对应的XAML文件,更新
x:Class属性,比如x:Class="PDTHP.YourSubFolderName.App",确保和.xaml.cs的命名空间一致; - 打开
MainActivity.cs,添加对应的using指令:using PDTHP.YourSubFolderName;,或者在实例化App时使用完整命名空间:LoadApplication(new PDTHP.YourSubFolderName.App());。
4. 重置Live Player的缓存与连接
Live Player经常会缓存旧的编译产物,即使本地重建也无法更新:
- 在Visual Studio中断开与Live Player设备的连接;
- 在测试设备上卸载Live Player中的当前测试应用;
- 重新扫描设备并建立连接,重新部署项目。
5. 终极彻底清理方案
如果上面的步骤都无效,试试彻底清理项目的所有缓存:
- 关闭Visual Studio;
- 删除项目的
obj、bin和.vs(隐藏文件夹)目录; - 删除
%USERPROFILE%\.nuget\packages中与Xamarin相关的缓存包; - 重新打开项目,执行「还原NuGet包」→「清理解决方案」→「重建解决方案」,再尝试Live Player运行。
你提供的错误日志:
(1,1): error: Resource identifier 'App.xaml' has already been used in this assembly
(1,1): error: Resource identifier 'MainPage.xaml' has already been used in this assembly
(1,1): error: Dependent project PDTHP.csproj failed to build, using old version.
..Directory..(Project Name).Android\MainActivity.cs (1,1): error: The type or namespace name 'App' could not be found (are you missing a using directive or an assembly reference?)
Failed to debug your app.
内容的提问来源于stack exchange,提问作者Chanat Wén Sinpithakkul

