2

我正在开发一个 ASP.NET MVC2 项目,为此我配置了如下本地化...


我有一个单独的资源程序集,包含我所有的 resx 文件。每个 resx 文件的设置是...

构建操作 = 嵌入式资源
复制到输出目录 = 不复制
自定义工具 = PublicResXFileCodeGenerator
自定义工具命名空间 = 资源

我有一个工具,可以将数据库中的字符串导出到 resx 文件中,并调用 resgen.exe 工具来重新创建 Designer.cs 文件。


这一切都很好,即使我更改了浏览器的语言设置并刷新了页面。它会拾取正确的字符串。

那是在一个临时工作文件夹中(我使用颠覆)。我现在已经开始在我的普通文件夹中工作,并且遇到了一个相当奇怪的错误。

编译器错误消息:CS0433:类型 'Resources.XXXX' 存在于两个 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\6c657d01\aaca70ae\assembly\dl3\a36dac65\ 78c87110_3724cb01\Resources.DLL' 和 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\6c657d01\aaca70ae\App_GlobalResources.g6fehiio.dll'

我已删除所有临时 asp.net 文件,重新运行 Web 应用程序,它会重新生成上述两个程序集。真正奇怪的是,这一切在我转移到我通常的工作文件夹之前就已经奏效了。

那么,谁能告诉我是什么生成了这个 App_GlobalResources 程序集,我不需要或不想要它,因为我所有的资源都包含在我创建的 Resources 程序集中。

PS - 我选择 Resources.dll 的原因是为了解决我在使用数据库提取工具生成资源时遇到的问题。(见这里

PPS - 我正在使用 VS2010

4

3 回答 3

4

哦!

我想当我将“常用工作文件夹”切换到所在的分支时,“App_GlobalResources”文件夹中有一些文件。

我只是尝试在 VS2010 中创建一个新的 App_GlobalResources 文件夹,它告诉我那里已经有一个,但它不在解决方案资源管理器中。

我在Windows资源管理器中查看了很多次,只是没有看到那个文件夹。

总之,问题解决了!

道德:不要相信解决方案资源管理器或 svn 开关来删除不属于工作副本的文件:'(

于 2010-07-16T10:45:51.253 回答
0

虽然我不知道如何停止 App_GlobalResources 在临时 ASP.NET 文件中自动生成程序集。我确实想出了如何摆脱那些烦人的警告。

正如警告所说:

Compiler Error Message: CS0433: The type 'Resources.XXXX' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\6c657d01\aaca70ae\assembly\dl3\a36dac65\78c87110_3724cb01\Resources.DLL' and 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\6c657d01\aaca70ae\App_GlobalResources.g6fehiio.dll'

Resources.XXXX类型存在于两个程序集中。将您的更改Custom Tool Namespace为“资源”以外的其他内容,这些警告将消失。

于 2012-03-19T06:46:17.320 回答
0
  1. 将 .resx 移动到另一个文件夹(不是 App_GlobalResources)
  2. 将自定义工具命名空间设置为“资源”
于 2015-05-22T02:37:09.797 回答