【问题标题】:Is there a way to regenerate a missing .resx file?有没有办法重新生成丢失的 .resx 文件?
【发布时间】:2012-11-01 11:46:14
【问题描述】:

我有一个项目的源代码,但缺少 .resx 文件,这会阻止编译。有没有办法为它重新生成 resx 文件?这是我在 XP 机器上使用 Visual Studio 2010 Professional 创建的 C# 项目,我试图在 Windows 8 机器上使用 Visual Studio 2012 Ultimate 打开。

更新

它(Resources.resx)实际上在那里(在属性下),所以我猜“找不到”的意思是:“我不喜欢你给我的那个。”

当我捣碎 F6 再次尝试时,我收到警告,“自定义工具 'ResXFileCodeGenerator' 与文件 'Properties\Resources.resx' 相关联,但在项目中找不到自定义工具的输出。您可以尝试通过右键单击解决方案资源管理器中的文件并选择运行自定义工具来重新运行自定义工具。"

也:“自定义工具 'SettingsSingleFileGenerator' 与文件 'Properties\Settings.settings' 相关联,但在项目中未找到自定义工具的输出。您可以尝试通过右键重新运行自定义工具 -单击解决方案资源管理器中的文件并选择运行自定义工具。”

我为 Resources.resx 和 Settings.settings 运行了“运行自定义工具”,但仍然收到相同的错误和两个警告。

【问题讨论】:

  • 您是指Resources.resx 文件吗?如果是这样,转到项目属性,然后是“资源”选项卡,应该有一个大链接可以单击以重新生成它。
  • 谢谢;我的回复比较长,所以我将其附加到我的原始帖子中。
  • 我重新标记了这个问题,因为 OS/VS 版本和语言不相关。在带有 VB.Net 项目的 XP 机器上使用 VS2008 可以找到相同的问题(和解决方案)。

标签: .net resx


【解决方案1】:

我来自未来,Visual Studio 2019。在更大的合并过程之后我遇到了同样的问题(出于某种原因,它要求我合并很多或全部 *.Design 文件)。很明显,我不得不从 .resx 文件中重新生成自动生成的代码。

解决方案:我更改了一个条目(名称,而不是值),保存它,改回来,保存它。这似乎迫使所有 .resx 文件重新生成,并且项目正在再次编译。

只需做一个需要更改自动生成代码的更改。

【讨论】:

    【解决方案2】:

    如果运行的是 VS 2017 或更高版本,我只是删除了该文件。

    【讨论】:

      【解决方案3】:

      如果您过去编译过项目并且有可用的 dll/exe,则可以使用 JetBrains 的 DotPeek 应用程序从程序集中导出 resx XML

      打开DotPeek中的dll/exe

      然后双击每个资源以在窗口中查看 XML。然后,您可以将 XML 复制/粘贴到文本编辑器中并保存为 .resx 文件。

      不要费心右键单击资源并尝试“将资源保存到文件”选项,因为这不会以您在屏幕上看到的相同格式创建文件。

      【讨论】:

        【解决方案4】:

        Visual Studio 2012-2015 用户 对于 Web 应用程序,只需在解决方案资源管理器中选择缺少 resx 的 Web 控件 (ascx) 或页面 (aspx),然后转到项目菜单并选择“转换为 Web 应用程序”,在提示符上按 OK。您应该会在解决方案资源管理器中看到所选项目下的新文件。

        【讨论】:

          【解决方案5】:

          将项目中任何其他形式的.resx文件复制到项目文件夹中,然后重试。它对我有用。

          【讨论】:

            【解决方案6】:

            我在为一个相当广泛的项目创建的表单上遇到了这个问题。我能够在同一个项目中简单地复制另一个表单的 resx,并更改文件名。

            我浏览了项目中的十几个 resx 文件,发现其中大部分是相同的;少数没有,仅相差一两行。

            【讨论】:

            • 仅当设计器文件包含重新生成 resx 所需的所有信息时才有效。情况并非总是如此。
            【解决方案7】:

            右键单击并删除 .resx 表单项目 右键单击表单并更新资源管理器 构建项目 运行项目

            【讨论】:

            • 右键表单并更新资源管理器?我在 Visual Studio 2017 中似乎没有?
            • 如果“form”指的是 Windows 窗体,这只有在设计器文件包含所有需要的信息时才有可能。在一般情况下,表单的 resx 文件包含其他任何地方都不存在的信息。也许它适用于您打开设计器并手动删除 .resx 的简单情况 - 大概它可以从内存中的信息中重新生成。但是,如果您尝试使用缺少 .resx 的表单加载项目,则这是不可能的。
            【解决方案8】:

            我知道这个问题有点老了,但是我在生成 .resources.dll 文件时遇到了问题,并且在最近更改了 .NET Framework 版本之后,.ResX 文件仍然包含旧的 .NET Framework 版本。我可以通过打开受影响的表单并转到“设计”->“可本地化”并将其更改为“假”来解决此问题。然后我构建了项目,然后将其改回“True”,并重新生成了 .ResX 文件。

            【讨论】:

            • 不幸的是我运气不好。来回切换它们没有任何区别。我的也已经设置为 False。
            【解决方案9】:

            我的解决方法如下:我在记事本的另一个项目中打开了缺少的辅助文件(AssemblyInfo.cs、Resources.resx、Resources.Designer.cs、Settings.settings 和 Settings.Designer.cs),删除了这些东西不属于的(例如对 ThemeEditor 的引用等),根据需要更改了其他内容(应用程序或包的名称),这些最终被接受为属于我的应用程序的内容。

            【讨论】:

              【解决方案10】:

              据我所知,没有办法重新生成 .resx 文件,但您可以采用另一种方式 您可以创建另一个/相同的 win 应用程序及其所有控件方面。比取一个新创建的 resx 文件并添加到旧项目。试试吧,也许它会工作

              【讨论】:

                猜你喜欢
                • 2021-04-20
                • 1970-01-01
                • 2018-11-10
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2023-03-18
                • 1970-01-01
                相关资源
                最近更新 更多