我遇到GlobalResources的问题
默认我不能在我的MVC项目中使用这些资源。 我试过了:
Niemożnapurbraćwłaściwości“Name”,ponieważlokalizacjaniepowiodłasię。 Typ“Resources.Users”nie jest publiczny lub nie zawiera publicznej,statycznejwłaściwościciąguonazwie“FirstName”。
它的翻译是:
由于位置失败,无法检索属性“名称”。类型“Resources.Users”不是公共的,或者不包含名为“FirstName”的公共静态属性。
然后我更改了User.resx属性:
现在我无法使用 Resources.User.FirstName 我必须 useApp_GlobalResources.User.FirstName
我很高兴它的工作。但昨天是我第一次在测试服务器上发布,而且资源不能正常工作......
文件不会复制到服务器......
我更改User.resx属性
复制文件,但是应用程序会抛出我之前共享的相同的先前异常,并且资源在localmachine中不起作用,有什么建议吗?
答案 0 :(得分:2)
感谢您的帮助
我做了:
构建操作:嵌入式资源
复制到输出:始终复制
自定义工具: PublicResXFileCodeGenerator
自定义工具命名空间:资源
此设置允许我将Access Modifier resx文件更改为Public。
现在项目在本地机器上工作。 发布期间的文件resx正在处理serwer。 服务器应用程序正常工作。
答案 1 :(得分:1)
考虑以下关于资源的说明:
将资源文件添加到ASP.NET项目的App_GlobalResources
特殊文件夹时,GlobalResourceProxyGenerator
自定义工具将用于您的资源,它将生成internal
类在Resources
程序集中的App_GlobalResources
命名空间中,用于管理资源。
它们不能用于[Display]
或验证属性等数据注释属性。
可以通过调用Resources.ResourceFile.ResourceProperty
直接在View或代码中使用它们。
使用ResXFileCodeGenerator
作为自定义工具的嵌入式资源将在名称空间中生成公共资源文件,该名称空间是默认名称空间+文件夹层次结构。
默认情况下,这些资源是公开的,但您可以使用设计器更改它们的访问修饰符。您还可以通过更改其Custom Tool Namespace
属性
它们可用于数据注释属性,如[Display]
或验证属性。
可以通过调用SomeNamespace.ResourceFile.ResourceProperty
直接在View或代码中使用它们。
答案 2 :(得分:-1)
打开资源文件,将访问修饰符更改为public并且不要将其作为嵌入资源,因为这将生成另一个具有项目程序集名称和附加.resources后缀的程序集,这将使其难以实现您可以在部署后更改任何资源值,使其不嵌入并复制到输出目录,以便以后可以选择更改resx文件而无需部署dll。