Visual Studio for Mac - AppResource.Designer.cs 未重新生成

Visual Studio for Mac - AppResource.Designer.cs Not Getting Regenerated

Visual Studio 用于 Mac 社区 7.7.4(构建 1)

我查看了我的一个 .NETStandard 2.0 项目的信息,并在其 AppResources.resx 文件中添加了一个字符串 MyLabelTitle。

我在我的代码中引用了这个字符串,如下所示:

AppResource.MyLabelTitle

这将成功构建,这太棒了。

但是,我看到的许多在线论坛、文档、Xamarin 论坛、Whosebug 问题都指出 AppResource.Designer.cs 文件会在您重建项目时自行重新生成。有些人也建议在 git 中忽略它。

为了测试这一点,我从 AppResource.Designer.cs 恢复了我的更改(我正在使用 git)所以最终结果是:

根据我的理解,重建项目将从 AppResource.resx 文件中获取我的更改并将其添加到 AppResource.Designer.cs 文件.

但是,构建我的 iOS 或 Android 项目现在将无法构建,因为它引用了我在 AppResource.resx[=55= 中添加的字符串之一] 文件。

此字符串仍存在于 AppResource.resx 文件中,但未在 AppResource.Designer.cs 中重新生成,并且结果我的项目无法引用该字符串。

尝试求解失败

我认为如果我注释掉引用 AppResource.MyLabelTitle 的代码行,我应该能够成功构建并且它确实构建成功,但是字符串 MyLabelTitle 仍然没有从 AppResource.resx 文件并在 AppResource.Designer.cs 文件中重新生成。因此,我无法再在我的代码中引用该字符串。

如何解决这个问题?

我怀疑你也在 Visual Studio for Mac community forum 上发布了这个问题,但我会在这里回答,以防有人看到这里。

Visual Studio for Mac 在构建时不会为 .resx 文件重新生成关联的 .cs 文件。当 .resx 文件保存在文本编辑器中时,它将重新生成 .cs 文件。

这里的一个问题是 .resx 文件需要有未保存的更改,否则将不会重新生成 .cs 文件。

Android 项目将在构建时重新生成它们的 Resources.designer.cs 文件。此 .cs 文件是根据项目中各种 .axml 文件的内容生成的,而不是任何 .resx 文件。

您可以安装一个插件,这可能对您有所帮助。它提供了一种方法 运行 解决方案或项目的所有自定义工具手动或当构建是 运行。