Satellite Assembly 版本必须与基础版本匹配吗?
我刚刚遇到了一种情况,我需要使用我们的一个程序集的新版本来修补发行版。 我的所有程序集都是强名称,这是一个 Windows 窗体应用程序。 我编辑了 App.config 来进行适当的重新映射,一切都很顺利,直到我们使用本地化版本测试了我们的软件。 我们看到的问题是现有的卫星程序集未加载,并且我们没有看到本地化资源。 我能找到的唯一解决方案是使用基本程序集作为模板,通过程序集链接器重建附属程序集。
有几个问题:
如果我的基础程序集是强命名的,那么我的卫星程序集也必须是强命名的吗? 就我而言,我没有使用 GAC。
为什么我的卫星程序集不使用 App.config 中指定的重定向?
I just ran into a situation where I needed to patch a release with a new version of one of our assemblies. All my assemblies are strong names and this is a Windows Forms application. I edited my App.config to do the appropriate re-mappings and all went fine until we tested our software with our localized version. The problem we saw is that the existing satellite assembly didn't load and we didn't see the localized resources. The only solution I could find was to rebuild the satellite assemblies with the assembly linker using the base assembly as a template.
A couple of questions:
If my base assembly is strong named, must my satellite assembly also be strong named? In my case I'm not using the GAC.
Why doesn't my satellite assembly use the redirection specified in my App.config?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,卫星程序集也必须是强命名的,并且需要与真实程序集相同的版本和公钥。
请参阅此链接:http://www.codeguru。 com/csharp/.net/net_general/tipstricks/article.php/c11367/
我不确定为什么当您使用重定向时它没有加载。 您将程序集 A 版本 1 替换为版本 2。您将版本 1 重定向到版本 2。您的程序集 A 的附属程序集仍处于版本 1 中吗? 它是否正确? 这当然行不通。 如果更换组件,则必须更换其卫星。
Yes, satellite assemblies must also be strong named, and need the same version and public key as the real assembly.
See this link: http://www.codeguru.com/csharp/.net/net_general/tipstricks/article.php/c11367/
I'm not sure why it is not loaded when you use the redirection. You replace assembly A version 1 with version 2. You redirect version 1 to version 2. You have satellite assemblies for assembly A still in version 1? Is this correct? This of course does not work. If you replace an assembly, you have to replace its satellites.