我在App_GlobalResources文件,其资源通常是这样的访问带有.resx文件的ASP.NET Web应用程序:部署没有.resx文件的ASP.NET应用程序?
ASPX:<asp:Literal ID="l1" runat="server" Text="<%$ Resources:GalleryServerPro, Admin_Tab_Hdr %>" />
代码隐藏:string msg = Resources.GalleryServerPro.Successfully_Restored_Msg;
有什么办法将.resx值直接编译到DLL中,以便我可以部署该应用程序,而不需要.resx文件和不必编辑任何现有代码?
我问这是因为我将现有的应用程序移植到DotNetNuke模块,而DotNetNuke不允许.resx文件,所以我正在寻找解决方法。
感谢, 罗杰·马丁 Gallery Server Pro
我对这个花了几个小时都没有成功。看起来,我在ASPX页面中使用声明性语法会导致应用程序依赖于App_GlobalResources中的.resx文件,并且不可能将其重构为卫星程序集。当我尝试时,我的应用忽略它(从.resx继续显示)。如果我删除.resx文件以试图强制它使用它,ASP.NET会默默创建一个新的空白.resx文件,然后抛出一个错误,因为它是空的。如果我然后删除App_GlobalResources目录,w3wp.exe进程崩溃。 – user98773
您是否看过将完整编译的应用程序部署到Web服务器?您可以预编译该网站。请参阅http://msdn.microsoft.com/en-us/library/ms229863(VS.80).aspx。 完成此操作后,Web目录中应该没有resx文件。 引用“这些文件被编译成程序集并放入Bin目录中,没有在主输出目录下创建App_GlobalResources子目录,并且位于源目录中的.resx或.resources文件都不会复制到输出目录。 也许这个工具实际上比卫星组装程序更需要什么? –
预编译网站只适用于网站,而不是网络应用程序,所以这对我无效。 – user98773