错误 CS0103:当前上下文中不存在名称“InitializeComponent”

Ada*_*lla 2 xamarin xamarin.forms

使用 Visual Studio Community for Mac 7.3.3 (build 7)我制作了一个 iOS 项目。然后创建一个新的 .NET Standard 2.0 库。

使用我添加的内置 NuGet 支持 Xamarin.Forms到每个项目中。

在 Net Standard 2.0 Lib I 中 Add -> New File选择Forms ContentPage Xaml

这将创建一个空类和相应的 XAML 文件。在类构造函数中,它包含 1 行:

InitializeComponent();

当我尝试编译 NET Standard 2.0 lib 或 iOS 项目时,编译失败并显示以下错误:

错误 CS0103:名称“InitializeComponent”在当前上下文中不存在 (CS0103)

我没有向任何一个项目添加其他代码或依赖项。显然,我错过了一些对我来说并不明显的东西。

hva*_*an3 6

正如 DeveloperX 在评论中所说,打开 XAML 文件上的属性窗口并确保Build Action =Embedded Resource并确保Custom Tool = MSBuild:UpdateDesignTimeXaml

最后,要修复 VS 中的 .NET Standard 错误,请将以下内容添加到 .NET Standard .csproj 文件中

<ItemGroup>
  <!-- https://bugzilla.xamarin.com/show_bug.cgi?id=55591 -->
  <None Remove="**\*.xaml" />

  <Compile Update="**\*.xaml.cs" DependentUpon="%(Filename)" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

如果您仍然遇到问题,则可能是 .NET Standard 项目的设置方式有问题。查看以下文章,其中讨论了将 PCL 转换为 .NET Standard,这就是我们所做的。

关联