资源写入工具类:ResXResourceWriter,在使用和过程中,一定要按照一定的顺序来写入,否则就写入文件不能使用ResXResourceReader来进行解析
正确的解析方式是,首先加图片或图标资源,再加入字符串资源,下面的代码,就是正确的方式:
1: var filename = string.Format("{0}Resources.resx", floder);
2: using (var writer = new ResXResourceWriter(filename))
3: {
4: if (ImageResources.Count > 0 || IconResources.Count > 0)
5: {
6: foreach (var entity in ImageResources)
7: {
8: writer.AddResource(entity.Name, entity.Value);
9: }
10:
11: foreach (var entity in IconResources)
12: {
13: writer.AddResource(entity.Name, entity.Value);
14: }
15: }
16:
17: CreateResource(writer, le);
18: }
如果不执行那样的顺序,就会出现,在生成的资源文件文件不存在”<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />”
即使在写入图片资源时,加入了
1: writer.AddAlias()
来手动加入,也不会成功。
这个问题比较隐蔽,不太容易发现。