C# 如何让Xamarin构建过程处理我的XAML文件?
我有两个使用XAML页面的Xamarin.Forms项目。我们叫他们ProjectOK和ProjectBreak ProjectOK构建的很好。ProjectBreak失败,表示找不到InitializeComponent。调查(通过将生成输出增加到正常值)表明,这是因为ProjectBreaked根本不处理我的XAML文件。在ProjectOK的构建输出中,我得到:C# 如何让Xamarin构建过程处理我的XAML文件?,c#,xaml,xamarin,msbuild,C#,Xaml,Xamarin,Msbuild,我有两个使用XAML页面的Xamarin.Forms项目。我们叫他们ProjectOK和ProjectBreak ProjectOK构建的很好。ProjectBreak失败,表示找不到InitializeComponent。调查(通过将生成输出增加到正常值)表明,这是因为ProjectBreaked根本不处理我的XAML文件。在ProjectOK的构建输出中,我得到: _CoreXamlG: Source: Page1.xaml Language: C# AssemblyName: App1 O
_CoreXamlG:
Source: Page1.xaml
Language: C#
AssemblyName: App1
OutputFile obj\Debug\App1.Page1.xaml.g.cs
ProjectBreak不包含这样的行
在解决方案资源管理器中,两个项目中XAML页面的属性相同。Page1.xaml文件设置为:嵌入式资源,不复制,自定义工具=MSBuild:UpdateDesignTimeXAML。Page1.xaml.cs设置为:编译,不复制
打开项目文件,我发现ProjectOK包含:
<Compile Include="Page1.xaml.cs">
<DependentUpon>Page1.xaml</DependentUpon>
</Compile>
第1.xaml页
后来:
<ItemGroup>
<EmbeddedResource Include="Page1.xaml">
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
MSBuild:UpdateDesignTimeXaml
设计师
ProjectBreak不包含对我新创建的Page1.xaml的引用
即使我手动将上面的行添加到projectbreake.csproj文件中,它仍然不会调用XAML编译器
所以,我的解决方案文件夹外似乎有东西坏了。有人知道这可能是什么吗?更重要的是,我如何“重置”它?检查xaml页面上的x:Class标记,我打赌它们与代码文件上的类/命名空间不匹配……这是继承的页面吗?也许名称空间被弄乱了。另外,检查XAML依赖关系,看看这个要点,这就是你在项目中应该看到的,如果依赖关系被破坏了,那么XAML将不会被解析:嗯,为了保持理智,你能在XS上检查它吗?如果失败了,那么你将有更好的机会在Xamarin论坛上获得帮助…我认为这是Xamarin的bug。如果删除所有
obj
和bin
文件夹并重建,通常会在短时间内修复它