Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何让Xamarin构建过程处理我的XAML文件?_C#_Xaml_Xamarin_Msbuild - Fatal编程技术网

C# 如何让Xamarin构建过程处理我的XAML文件?

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

我有两个使用XAML页面的Xamarin.Forms项目。我们叫他们ProjectOK和ProjectBreak

ProjectOK构建的很好。ProjectBreak失败,表示找不到InitializeComponent。调查(通过将生成输出增加到正常值)表明,这是因为ProjectBreaked根本不处理我的XAML文件。在ProjectOK的构建输出中,我得到:

_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
文件夹并重建,通常会在短时间内修复它