首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在预编译的已部署网站中添加附属程序集

在预编译的已部署网站中添加附属程序集
EN

Stack Overflow用户
提问于 2009-11-17 14:52:55
回答 2查看 1.1K关注 0票数 18

为了在Visual Studio2008中使用GetGlobalResourceObject(),我必须将一个.resx文件复制到Visual Studio的App_GlobalResources文件夹中。预编译应用程序后,资源文件将编译到相应的附属程序集中,并按区域性名称部署在\bin\文件夹下。这一切都运行得很好。

但是,在预编译应用程序后,我无法添加新的附属程序集。我所做的是:

  1. 创建了附属程序集:

resgen resources.applicationresources.es-ES.resx resources.applicationresources.es-ES.resources al /embed:resources.applicationresources.es-ES.resources /out:App_GlobalResources.resources.dll

  • Created / /t:lib :ES-ES/embed:resources.applicationresources.es-ES.resources/out:App_GlobalResources.resources.dll

  • Created文件夹\bin\es-ES\并在那里部署.dll文件。

遗憾的是,GetGlobalResourceObject()不能识别新添加的附属程序集,它会退回到默认(英语)资源。资源文件似乎没有任何问题,因为如果我将相同的.resx文件复制到App_GlobalResources中,然后编译应用程序,一切都会正常工作。

我遗漏了什么?顺便说一下,我的项目类型是网站,而不是web应用程序项目。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-30 15:53:43

(来自@ksa的评论)

可能会出错的一件事是由resgen生成的DLL中的名称空间路径不正确,您可以使用ILDASM或Reflector来比较工作DLL中的名称空间和生成的不工作DLL中的名称空间。然后,您可以更改resgen命令行以使用正确的名称空间生成。

票数 0
EN

Stack Overflow用户

发布于 2011-08-14 06:06:04

尝试连接到AppDomain.CurrentDomain中的AssemblyResolve事件,看看它是否实际在查找程序集。如果它确实在寻找它,您所需要做的就是保留一个动态加载的程序集及其路径的列表。

关于AssemblyResolve需要注意的一点是,如果没有程序集,则返回null。这是默认行为。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1747041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档