C# ->C#Resources.resx资源文件出问题后无法与Resources.Designer.cs放在上下级,怎么办?

相信很多人都遇到过这样的问题,Resources.resx出了问题,然后系统给自动重新生成了一个Resources1.resx,然后你又不想用这个自动生成的,于是你删除了Resources1.resx,此时你还想用那个Resources.resx。

而当你把Resources.resx加入到项目中时,Resources.Designer.cs没有自动跟在它下面,于是你又把Resources.Designer.cs加入到项目中。

而此时,它们两个是平级地放在项目中,你手动把它们拖入到Properties下面,但是Resources.Designer.cs怎么也无法拖到Resources.resx下面一级。

1.关闭VS,用记事本打开你的项目文件,xxx.csproj文件;

2.ctl+f,搜索AssemblyInfo.cs,找到此行  <Compile Include="Properties\AssemblyInfo.cs" />;

3.在其下面加入下面的几行:

    <Compile Include="Properties\Resources.Designer.cs">
      <AutoGen>True</AutoGen>
      <DesignTime>True</DesignTime>
      <DependentUpon>Resources.resx</DependentUpon>
    </Compile>

这样打开后,你会发现搞定了:

而有时候你会发现,即使放到下面一级去了,你还是不能将它们两个关联起来,这又是什么原因呢?

可能是:你的Resources.resx的自定义工具是空的,这就是你人为修改了此文件后造成它为空的。

你需要把在这个地方输入:ResXFileCodeGenerator

此时会出现一个resources1.designer.cs文件,你需要保存VS后,用记事本修改csproj文件,把1去掉,当然你得先删除那个resources.designer.cs文件了。

然而,你发现,仍然有问题,还需要复制这个到里面去:

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

然而,复制完了,你发现还他妈的有问题,什么问题呢?

就是

“Resources”不可访问,因为它具有一定的保护级别

其实,这个时候实际上已经是好了,只是好像它还没有缓过来。

我是弄了好久,搞不定,重新打开VS,也不行。

我重新编译,也通过了,然而还是依然。

最后,我在Resources.resx中手动加了一个图形,加入后,居然神奇般好了!

shit!

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值