首页 > Silverlight > Silverlight中无法设置卫星程序集为中立资源程序集

Silverlight中无法设置卫星程序集为中立资源程序集

Silverlight

熟悉.Net资源文件体系的人都知道,中立资源程序集(Neutral Resource Assembly)的作用在于,一旦指定语言文化(Culture)的资源查找不到,便会Fallback到中立资源程序集。因此显式指定一个中立资源程序集很重要。

在每个工程的Properties文件夹下都有一个AssemblyInfo.cs文件,打开此文件,添加以下代码:

[assembly: NeutralResourcesLanguageAttribute("en", UltimateResourceFallbackLocation.MainAssembly)]

NeutralResourcesLanguageAttribute类指定了当前程序集使用的中立资源程序集的语言文化是什么(参数1),以及去哪里查找这个中立资源程序集(参数2)。参数2是一个枚举,有两个值,一个是MainAssembly,也就是当前程序集,另外一个是Satellite,也就是卫星程序集。

但是在Silverlight工程中,当第二个参数设置为Satellite的时候,应用程序启动会抛异常。即使VS确实已经把该中立资源程序集打包到Xap中相应的文件夹里头了(需要设置csproj文件中的SupportedCultures,细节参考Silverlight 2 RTM 多国语言支持),而普通的.Net程序集则没有此问题。

在Silverlight论坛上咨询了一下,有个微软的哥们测试了半天终于发现了其中的奥秘,就是需要Edit一下Silverlight工程文件,在PropertyGroup节下添加:

<PropertyGroup>

  <UICulture>en</UICulture>

  ........

  .......

其中的en就是我们在AssemblyInfo.cs中传给NeutralResourcesLanguageAttribute的参数1。

参考贴:http://forums.silverlight.net/post/588767.aspx

感谢发帖人Jerry Weng的无私钻研~~

== Kevin Yang ==

本博客遵循CC协议2.5,即署名-非商业性使用-相同方式共享
写作很辛苦,转载请注明作者以及原文链接~
如果你喜欢我的文章,你可以订阅我的博客:-D点击订阅我的文章

  1. X﹏X 到现在还没有评论~
  1. 暂时没有trackbacks.