Visual Studio for Mac社区7.7.4(构建1)
我去了我的一个.NETStandard 2.0项目,并在其AppResources.resx文件中添加了一个字符串MyLabelTitle。
我在代码中引用了这个字符串,如下所示:
AppResource.MyLabelTitle
这将成功建立,这是伟大的。
但是,我所看到的许多在线论坛,文档,Xamarin论坛,StackOverflow问题表明,当您重建项目时,AppResource.Designer.cs文件将自行重新生成。有人建议在git中忽略它。
为了测试它,我从AppResource.Designer.cs恢复了我的更改(我正在使用git),因此最终结果是:
根据我的理解,重建项目将从AppResource.resx文件中获取我的更改并将其添加到AppResource.Designer.cs文件中。
但是,构建我的iOS或Android项目现在将无法构建,因为它引用了我在AppResource.resx文件中添加的字符串之一。
此字符串仍存在于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文件生成的。
你可以安装一个可能有用的插件。它提供了一种手动或在运行构建时为解决方案或项目运行所有自定义工具的方法。