resx文件和cs文件自动关联的工具解决方法
在反编译程序资源例如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>
收工。自己用的时候根据情况不同一定要先测试,后果自负。