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

时间:2019-03-18 19:22:16

标签: visual-studio-mac

Visual Studio for Mac Community 7.7.4(内部版本1)

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

我在代码中引用此字符串,如下所示:

services.AddSingleton<Microsoft.AspNetCore.SignalR.IUserIdProvider, MyCustomUserIdProvider>();
services.AddSignalR();

这将成功构建,这很好。

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

为了进行测试,我从 AppResource.Designer.cs 恢复了所做的更改(我正在使用git),因此最终结果是:

    期间
  • AppResource.Designer.cs 没有我的更改
  • AppResource.resx 文件有我的更改。

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

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

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

无法成功解决的尝试

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

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

我怀疑您也在Visual Studio for Mac community forum上发布了此问题,但是如果有人在这里查看,则会在此处回答。

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

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

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

您可以安装一个外接程序,这可能会有所帮助。它提供了一种手动或在运行构建时运行解决方案或项目的所有自定义工具的方法。