文号
t80027
阅读
25918
回复
8
收藏
4
C# winform 两个输出文件名解析为同一个输出路径:
2016/05/27
IP:江苏
简而言之就是你把一个类声明为partial (也有可能是自动生成的),比如BtnReagentSample这个类,并且在两个或多个文件中实现这个类
而btnReagentSample.resx 这个资源文件却有两个或者更多,就会导致这个问题
首先 根据你的错误信息看是哪个类导致的错误 比如BtnReagentSample,
然后查看所有实现了这个类的文件下面(在visualStudio的解决方案资源管理器里查看,.cs文件下左边有个小三角,展开之后 会显示)是不是有多余的 *.resx文件,删掉就好了,为了防止删错,请先备份

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 两个输出文件名解析为同一个输出路径:“obj\Debug\BtnReagentSample.resources”
10年5个月前IP:上海
821968
1楼

哪个版本的VS?

引用
评论
张静茹作者
10年2个月前IP:江苏
826881
2楼
引用 celeron533:
哪个版本的VS?
2015
引用
评论
张静茹作者
10年2个月前IP:江苏
826882
3楼
回过头来看,解释的还是不够清楚,

再简单一些就是一个类被声明为partial 而资源文件却有不止一个
引用
评论
10年2个月前修改于 10年2个月前IP:上海
826889
4楼
我又重新看了看描述。。。还是没有搞清楚。
写个class怎么会产生resx呢?还是说那些是和UI有关的类?
一般对于bug或者defect的重现过程都要写的详细,可以任何从业人员都能无差别的还原场景。

2016-10-18 20_38_01-WindowsFormsApplication1 - Microsoft Visual Studio.png
引用
评论
张静茹作者
10年2个月前IP:江苏
826900
5楼
引用 celeron533:
我又重新看了看描述。。。还是没有搞清楚。
写个class怎么会产生resx呢?还是说那些是和UI有关的类?
一般对于bug或者defect的重现过程都要写的详细,可以任何从业人员都能无差别的还原场景。……
这个类是一个窗体,然后 这个窗体类太大了 分开写了多个文件
但是只可以有一个资源文件,但是不知道怎么抽风 会有多个资源文件的时候 就出错了
引用
评论
10年2个月前修改于 10年2个月前IP:上海
826916
6楼
刚才测试了下,确实可以重现

2016-10-19 21_05_30-WindowsFormsApplication1 - Microsoft Visual Studio.png

1. vs2015中,新建一个winform C#工程。
2. 在原有Form1基础上,新建一个Form2(其实是没有必要的)并在Form2上随意放置一个按钮。
3. 然后再新建一个class文件,取名 Form2.ext.cs,但是改成public partial class Form2。此时文件图标会变成winform特有图标。但文件内容和普通class无异。
4. 双击Form2.ext.cs,出现UI设计器,但上面没有出现第2步中的按钮。此时往里添加一个textbox。
5. Form2.ext.resx文件生成。
6. 编译项目,提示文件重复。
引用
评论
10年2个月前IP:四川
826948
7楼
微软的东西太自动化了,有特殊需求的话有时反而会造成麻烦
引用
评论
3年3个月前IP:广东
923533
8楼

谢谢大佬,解决了

引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的