使用Visual Studio for Mac创建项目时遇CS0103错误:InitializeComponent不存在
解决Xamarin.Forms中
InitializeComponent不存在的编译错误 我之前在Visual Studio for Mac里也碰到过一模一样的问题,这个CS0103报错基本上都是XAML文件的生成配置或者命名空间匹配的问题,给你几个靠谱的解决步骤:
检查XAML文件的生成操作
右键类库中的XAML文件,选择「属性」,确保:- 「生成操作」设置为
Embedded resource - 「自定义工具」设置为
MSBuild:UpdateDesignTimeXaml
这个自定义工具负责自动生成包含InitializeComponent()方法的.xaml.g.cs文件,要是设置错了肯定会报找不到的错。
- 「生成操作」设置为
验证XAML与代码文件的命名空间完全匹配
打开XAML文件,确认根元素的x:Class属性完全对应代码类的全名(命名空间+类名),比如:<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="YourAppNamespace.YourContentPage">同时检查代码文件的命名空间和类名是否和上面一致:
namespace YourAppNamespace { public partial class YourContentPage : ContentPage { public YourContentPage() { InitializeComponent(); } } }另外XAML里的
xmlns:local命名空间也要和代码的命名空间匹配,避免出现引用不一致的情况。清理并重建整个解决方案
有时候VS的缓存会导致自动生成的代码没更新,按顺序做这两步:- 菜单栏选择「生成」→「清理解决方案」
- 再选择「生成」→「重建解决方案」
很多时候缓存问题清理完就解决了。
确保所有项目的Xamarin.Forms版本一致
打开NuGet包管理器,检查iOS项目和.NET Standard类库中的Xamarin.Forms版本完全相同,版本不匹配也可能导致生成工具无法正常工作。手动检查自动生成的代码文件(可选)
打开类库项目的obj\Debug\netstandard2.0目录,找一下YourContentPage.xaml.g.cs文件:- 如果这个文件不存在,说明自定义工具没运行,回到第一步确认生成操作设置
- 如果文件存在但里面的命名空间或类名不对,调整XAML里的
x:Class属性后重新生成
内容的提问来源于stack exchange,提问作者AJ Venturella
相关产品推荐
相关产品推荐

