C# VS解决方案跨项目共享View提示InitializeComponent不存在如何解决
问题根因
这个报错确实和命名空间配置、XAML文件生成属性有关,核心原因是你通过链接方式引入的XAML文件,在Agent Manager项目中没有被正确编译生成对应partial类的InitializeComponent方法,导致后台代码找不到该方法。
解决方案
你可以按以下步骤配置修复:
步骤1:统一命名空间
确保PreCheckView.xaml头部的x:Class属性值,和对应PreCheckView.xaml.cs的命名空间完全一致,不要因为跨项目链接出现命名空间不一致的情况。比如你Precheck项目中定义的类是Precheck.PreCheckView,那么两个项目中该文件的命名空间都要保持为Precheck,不要让Agent Manager项目自动修改文件命名空间。步骤2:调整链接XAML文件的生成属性
在Agent Manager项目中,右键点击你链接进来的PreCheckView.xaml文件,选择「属性」,修改两个配置:- 「生成操作」改为
Page - 「自定义工具」改为
MSBuild:Compile
配置完成后重新生成项目,VS就会为该链接XAML生成对应的partial类代码,InitializeComponent报错就会消失。
- 「生成操作」改为
更规范的复用方案(可选)
文件链接的方式维护成本较高,更建议你将公共视图抽成独立的WPF类库项目,Precheck项目和Agent Manager项目都引用这个类库即可,不需要处理跨项目文件的配置问题。
内容的提问来源于stack exchange,提问作者iamcootis
相关产品推荐
相关产品推荐

