无法从Mac OSX上的Monodevelop中的.Resx文件中获取字符串值

时间:2013-01-16 20:31:40

标签: macos resources mono monodevelop resx

从这个问题:
C#, Localization, Resources, and MonoDevelop
在答案部分,它说:
“通常情况下,将.resx形式的资源存储在项目中,MonoDevelop会在构建项目时自动将它们编译成.resources文件(你必须手动编译.txt文件)。不幸的是MD没有resx文件的特殊编辑工具,因此您必须直接编辑XML。“

我有一个适用于Windows的vs2008应用程序 我正在尝试将其移植到Mac OSX 我有一个包含不同字符串的.resx文件 当我使用时:
Resources.Properties.Resources.Distributor_ARDL
我明白了:
    {System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.OverflowException:Number overflow。 at(包装器托管到本机)对象:System.Drawing.Icon.InitFromStreamWithSize(System.IO.Stream流,Int32宽度,Int32高度)[0x00000] in中的__ icall_wrapper_mono_array_new_specific(intptr,int):在System.Drawing中为0。 Icon..ctor(System.Runtime.Serialization.SerializationInfo info,StreamingContext context)[0x00000] in:0 at(wrapper managed-to-native)System.Reflection.MonoCMethod:InternalInvoke(System.Reflection.MonoCMethod,object,object [ System.Reflection.MonoCMethod.Invoke(System.Object obj,BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object []参数,System.Globalization.CultureInfo文化)[0x00000]中的,System.Exception&) 0 ---内部异常堆栈跟踪结束---在System.Reflection.MonoCMethod.Invoke(System.Object obj,BindingFlags invokeAttr,System.Reflection.Binder binder,System.Object []参数,System.Globalization.CultureInfo文化)[0x00000] in:0在System.Reflection.MethodBase.Invoke(System.Object obj,System.Object []参数)[0x00000] in:0 at System.Runtime.Serialization.ObjectRecord.LoadData(System.Runtime.Serialization.ObjectManager manager,ISurrogateSelector selector,StreamingContext context)[0x00000] in:0 at System。 Runtime.Serialization.ObjectManager.DoFixups()[0x00000] in:0,System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadNextObject(System.IO.BinaryReader reader)[0x00000] in:0,System.Runtime.Serialization。 Formatters.Binary.ObjectReader.ReadObjectGraph(BinaryElement elem,System.IO.BinaryReader reader,Boolean readHeaders,System.Object&结果,System.Runtime.Remoting.Messaging.Header []&标题)[0x00000] in:0在System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize(System.IO.Stream serializationStream,System.Runtime.Remoting.Messaging.HeaderHandler handler)[0x00000] in:0 at System。 Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(System.IO.Stream serializationStream)[0x00000] in:0,System.Resources.ResourceReader.ReadNonPredefinedValue(System.Type exp_type)[0x00000] in:0,System.Resources。 ResourceReader.ReadValueVer2(Int32 type_index)[0x00000] in:0 in System.Resources.ResourceReader.LoadResourceValues(.ResourceCacheItem [] store)[0x00000] in:0 at System.Resources.ResourceReader + ResourceEnumerator.FillCache()[0x00000] in :System.Sresources.ResourceReader + ResourceEnumerator..ctor(System.Resources.ResourceReader readerToEnumerate)中的0:[0x00000] in:0,System.Resources.ResourceReader.GetEnumerator()[0x00000] in:0,System.Resources.ResourceSet。 ReadResources()[0x00000] in:0在System.Resources.ResourceSet.GetObjectInternal(System.String name,Boolean ignoreCase)[0x00000] in:0 at System.Resources.ResourceSet.GetObject(System.String name,Boolean ignoreCase)[0x00000] in:0 at System.Resources.RuntimeResourceSet.GetObject(System.String name,Boolean ignoreCase)[0x00000] in:0 in System.Resources.ResourceSet.GetStringInternal(System.String name,Boolean ignoreCase)[0x00000] in:0 in System.Resources。 ResourceSet.GetString(System.String name,Boolean ignoreCase)[0x00000] in:0 in System.Resources.ResourceManager.GetString(System.String name,System.Globalization.CultureInfo culture)[0x00000] in:0 at Imaginality.Resources。

中的Properties.Resources.get_Distributor_ARDL()[0x00000]

所以我想知道resx文件是否正常工作。
如果其他人对这个问题有任何好运。
resx的构建选项设置为embeddedresouce。

1 个答案:

答案 0 :(得分:0)

嗨,经过一段时间后,我发现mono不喜欢我创建的几个.icon文件。到目前为止,我不确定它不喜欢它(因为它确实像8个中的3个)所以一旦我删除了它建立的文件。花了一点时间才看到它们是什么,因为错误与第一次调用Resourced文件时的图标文件无关。 干杯