Visual Studio 复制资源 .cs 文件

31

Visual Studio开始表现出一个非常烦人的怪癖。当我编辑一个资源文件(无论是使用设计视图还是直接编辑XML),它会创建一个重复的资源Designer.cs文件,导致项目无法构建。

例如:假设我的资源文件名为ProjectSQL.resx。如果您在“解决方案资源管理器”中展开ProjectSQL.resx,则会显示ProjectSQL.Designer.cs。当我对ProjectSQL.resx中定义的某个查询进行编辑时,它可以正常保存,但同时创建了另一个名为ProjectSQL1.Designer.cs的文件。

在这个例子中,现在有两个具有相同类名的类文件,导致构建失败。

有没有人遇到过这个问题?你是如何解决的?我尝试过关闭解决方案然后重新打开,以及重新启动Visual Studio。对于那些感兴趣的人,我使用的是Windows 7 Ultimate上的VS 2010 Premium。


1
http://connect.microsoft.com/VisualStudio/feedback/details/532800/msdatasetgenerator-create-another-designer1-cs-file-for-my-typed-dataset - Hans Passant
1
那个页面上描述的标签是它。不知何故,VS决定把那个1放在那里。非常感谢!如果你能组织一个答案来描述项目文件中的LastGenOutput标签,我将很乐意接受并为你提供帮助的信用。 - iandisme
我不知道是什么导致了这个值的改变,这只是一个解决方法。请随意发布答案并接受它。 - Hans Passant
@HansPassant 这个链接已经失效了。 - kristianp
https://web.archive.org/web/20140610215024/http://connect.microsoft.com/VisualStudio/feedback/details/532800/msdatasetgenerator-create-another-designer1-cs-file-for-my-typed-dataset - Hans Passant
3个回答

50

如果其他人也遇到了同样的问题并来到这里,汉斯(Hans)上面的评论将会指引你找到项目文件。我必须关闭解决方案,找到项目 XML 文件中的 LastGenOutput 标签,并将资源输出的名称从 ProjectSQL1 改回 ProjectSQL。

我仍然不知道这是怎么发生的。但至少现在已经修复了。


正是我所需要的。谢谢! - BrianK
2
它起作用了。顺便说一下,要编辑项目文件,您可以卸载项目,右键单击项目并选择“编辑项目文件”,而无需关闭解决方案。我刚在VS 2015中发现了这个功能,所以想分享一下。 - Cagatay Kalan
2
为什么会发生这种事情? - ditoslav
感谢Felipe的种子,以及@iandisme的验证。 - Wombelite

12
在.csproj文件中替换以下代码:
<EmbeddedResource Include="Resources\ProjectSQL.resx">
   <Generator>ResXFileCodeGenerator</Generator>
   <LastGenOutput>ProjectSQL1.Designer.cs</LastGenOutput>
</EmbeddedResource>

使用以下代码:

<EmbeddedResource Include="Resources\ProjectSQL.resx">    
   <Generator>ResXFileCodeGenerator</Generator>
   <LastGenOutput>ProjectSQL.Designer.cs</LastGenOutput>
</EmbeddedResource>

来源: http://www.codeproject.com/Questions/227676/Resource-file-regenerating

本文介绍如何重新生成资源文件。

每次我需要更改 .csproj 文件时,我都觉得这是一种变通方法。对我来说它起作用了。谢谢。 - Felipe Oriani

0
清除“自定义工具”项。适当的 rpt 文件位于右键单击 rpt 文件 -> 属性 -> 自定义工具 -> 清除

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