VS2008:"资源文件已在另一个编辑器中打开"

30

但这是谎言!

大家好!我有以下问题:当我尝试打开资源文件 PriceCalculationUI.rc 时,Visual Studio 2008 告诉我该文件已在另一个编辑器中打开(在 vs2008 中,我只打开了一个 .cpp 文件选项卡)。 我检查了这个信息:运行 Process Explorer 并搜索 PriceCalculationUI 句柄。结果显示除了使用 PriceCalculationUI 目录的 devenv.exe 外,没有其他程序在使用它。

下一步我应该怎么做?

感谢您的任何帮助!

额外信息:当我重新构建(而不是构建)项目时,会出现对话框窗口,显示文件 PriceCalculationUI.rc 被另一个程序编辑过。


MsVS中的一个令人烦恼的错误,即使在VS 2018中仍然存在。打开RC文件,查找其中一个对话框项 - 并将文件作为源代码打开。编辑并保存,关闭文件 - 往往文件仍然会“保持打开状态”,而VS则拒绝打开它。不确定为什么他们不能像其他源文件一样,在检测到更改时刷新它并无论如何打开它。非常不幸。 - T.S
15个回答

29

我遇到过这个错误(在Visual Studio 2010中也出现),即使我没有打开.rc文件/resource.h文件。

对我来说唯一的解决方法是手动在文本编辑器中打开这两个文件(有时我会得到一个消息框 "The document '[path]\resource.h' is already open. Do you want to close it?,我会选择“是”关闭它),关闭这两个文件,然后尝试在资源视图中打开资源文件。

这个MS Connect页面建议关闭解决方案、删除.suo文件并重新打开解决方案。


4
提示:使用“解决方案资源管理器”中.rc文件上下文菜单中的“查看代码”选项,在VS文本编辑器中打开.rc文件。 - LThode
4
难以相信那行得通。在九年后的VS2019中,遇到了同样的问题,采用了同样的解决方法。 - Jonathan Lidbeck
十年后...即使重新启动了我的电脑。 - John Glen

21
如果你遇到这个问题,你需要:
  1. 关闭Visual Studio中和外部打开的.rc、resource.h文件。
  2. 在VS的“资源视图”选项卡中折叠项目,以便让VS有机会进行刷新。
  3. 再次尝试从“资源视图”选项卡中展开.rc文件。
我认为VS会给出这个错误的原因是它会自动更新这些文件。如果你在编辑器中打开任何一个文件,VS会认为可能会发生冲突。所以它会给你一个错误提示。有时这可能会有一点误导性,因为VS似乎不知道.rc和resource.h文件是由它自己打开的。在这种情况下,VS会自食其果。

8
问题解决了: 在VS2008文本编辑器中打开了PriceCalculationUI.rc文件(在解决方案资源管理器中右键单击文件-->查看代码),然后保存并关闭。就这样! 当我重新启动VS2008时,问题又出现了,但我知道该怎么做。 可能是由于Visual Assist X引起的?我不知道。
P.S.:感谢您的回复:交流导致行动!

“但我知道该怎么做” - 那么,你找到了解决方案是什么? - Edward Clements
在解决方案资源管理器中右键单击文件 --> 查看代码,打开了 VS2008 文本编辑器中的 PriceCalculationUI.rc 文件,然后保存并关闭。 之后可以在资源编辑器中打开 PriceCalculationUI.rc - GrinderZ
好的,谢谢(我的回答说:“手动在文本编辑器中打开两个文件...”) - Edward Clements
是的,原则是相同的,谢谢。但我不明白为什么在重新启动Visual Studio后问题会再次出现? - GrinderZ

3

这是我唯一可行的方法(适用于Visual Studio 2015)
1)打开带锁定资源文件的项目
2)关闭Visual Studio中的所有已打开项目文件。
3)关闭Visual Studio
4)启动Visual Studio并重新打开项目
5)完成。资源文件已解锁...


步骤3/4不应该是必要的 - 关闭所有相关文件(参见codermark的答案)应该会“解锁”它,就视觉工作室而言。 - Mike 'Pomax' Kamermans

3
关闭 Visual Studio 中打开的所有文件,然后我就可以打开 rc 文件了。

2

只需在Visual Studio中手动打开.rc文件。

右键单击.rc文件,然后单击打开


1
  1. 关闭VS中的所有项目。
  2. 关闭VS。
  3. 使用空白项目重新打开VS。
  4. 仅打开资源文件。

1
今天我遇到了同样的问题,以下是我解决问题的方法。
根本原因:我在我的解决方案中打开了“Resource.h”文件,并且它目前在我的VS编辑器中处于打开状态。当这个文件被打开时,它不允许我在资源视图中访问.rc文件。(会出现“在另一个编辑器中已打开”的消息)
解决方法:简单地关闭VS编辑器选项卡中的Resource.h文件,然后.rc文件就可以正常打开了。
希望如果你有同样的问题,这能够帮到你。

0
这里还有另一种可能性 - 你手动编辑了 resource.h 文件,比如添加了一个新的 #define,但是忘记更新 _APS_NEXT_CONTROL_VALUE,例如,定义一个新的控件,我添加了这行代码。
#define IDC_LIST_MAINWIN 1003

但是忘记修改这一行

#define _APS_NEXT_CONTROL_VALUE 1003

#define _APS_NEXT_CONTROL_VALUE 1004

一旦我进行了更改,问题就消失了。


0

在任何答案中都没有提到的一些事情,但今天我遇到了:

如果您在资源头文件中设置了断点,则相关的资源文件被视为正在使用中。只需删除断点即可使一切正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接