15

我有一个项目的源代码,但缺少 .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 运行了“运行自定义工具”,但仍然得到相同的错误和两个警告。

4

10 回答 10

6

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

在DotPeek中打开 dll/exe

在此处输入图像描述

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

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

于 2012-11-14T00:35:08.903 回答
6

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

于 2013-10-22T07:16:23.747 回答
4

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

于 2013-06-19T04:21:17.197 回答
2

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

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

于 2014-02-05T16:19:14.523 回答
2

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

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

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

于 2021-05-14T08:59:01.253 回答
1

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

于 2012-11-13T01:10:44.897 回答
1

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

于 2012-11-13T16:13:56.487 回答
1

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

于 2016-10-10T14:08:27.600 回答
0

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

于 2016-01-10T11:00:51.100 回答
0

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

于 2020-03-18T17:33:19.673 回答