在反编译程序资源例如reflector中,我们常碰到resx文件和cs源代码文件分离的问题,终极解决方法是修改项目csproj文件,手工修改其架构,但碰到大量的就需要使用正则表达式替换,然后在vs中重新全部加载。

第一种解决方法,点击需要关联的cs文件,然后通过项目菜单中添加新项,选择resx文件,则会自动关联,这适用于单一文件,不适合大批量关联。

第二种解决方法,简单修改项目文件。

打个比方,在项目文件中,原来是

<EmbeddedResource Include="DZJ.LSSK.Stock\frmStockModify.resx" />

我们只要修改为:

<EmbeddedResource Include="DZJ.LSSK.Stock\frmStockModify.resx" >
<DependentUpon>frmStockModify.cs</DependentUpon>
</EmbeddedResource>

  第三种方法来源于第二种方法,适合批量。首先要将resx文件放到cs相同目录下,并且同名,方法网上多得是,就不在这里啰嗦了;其次没必要使用原有的ResXFileCodeGenerator工具

这里举两种情况,一种情况是同在根目录,第二种情况是都在子目录,下面的表达式是都在二层子目录,第一种情况参看代码修改:

正则表达式为将

<EmbeddedResource\sInclude=\"([^\"]*)\\([^\"]*).resx"\s\/>

  

替换为 

<EmbeddedResource Include="$1\\$2.resx">
<DependentUpon>$2.cs</DependentUpon>
</EmbeddedResource>

  收工。自己用的时候根据情况不同一定要先测试,后果自负。

 

转载于:https://www.cnblogs.com/bffox/p/3373887.html

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐