使用Reflexil修改类库
因为公司一个项目需要修改PPS的颜色,于是反编译了PPS的代码发现,作者很不厚道的把所有着色都HardCode在代码里
private static void InsertDefaultSeriesColors(AnalyticChartTemplate template)
{
template.Add_CustomColor(Color.FromArgb(0, 0, 0, 0));
template.Add_CustomColor(Color.FromArgb(0xec, 0xc0, 80, 0x4d));
template.Add_CustomColor(Color.FromArgb(0xec, 0x9b, 0xbb, 0x59));
template.Add_CustomColor(Color.FromArgb(0xec, 0xdd, 0xd9, 0xc3));
template.Add_CustomColor(Color.FromArgb(0xec, 0x4b, 0xac, 0xc6));
template.Add_CustomColor(Color.FromArgb(0xec, 0xf7, 150, 70));
template.Add_CustomColor(Color.FromArgb(0xec, 0x93, 0x89, 0x53));
template.Add_CustomColor(Color.FromArgb(0xec, 0x8d, 0xb3, 0xe2));
template.Add_CustomColor(Color.FromArgb(0xec, 0xe5, 0xb9, 0xb7));
template.Add_CustomColor(Color.FromArgb(0xec, 0xd7, 0xe3, 0xbc));
template.Add_CustomColor(Color.FromArgb(0xec, 0xcc, 0xc1, 0xd9));
template.Add_CustomColor(Color.FromArgb(0xec, 0xb7, 0xdd, 0xe8));
template.Add_CustomColor(Color.FromArgb(0xec, 0xfb, 0xd5, 0xb5));
template.Add_CustomColor(Color.FromArgb(0xec, 0x80, 100, 0xa2));
template.Add_CustomColor(Color.FromArgb(0xec, 15, 0x24, 0x3e));
template.Add_CustomColor(Color.FromArgb(0xec, 0x63, 0x24, 0x23));
template.Add_CustomColor(Color.FromArgb(0xec, 0x4f, 0x61, 40));
template.Add_CustomColor(Color.FromArgb(0xec, 0x5f, 0x49, 0x7a));
template.Add_CustomColor(Color.FromArgb(0xec, 0x20, 0x58, 0x67));
template.Add_CustomColor(Color.FromArgb(0xec, 0x97, 0x48, 6));
template.Add_CustomColor(Color.FromArgb(0xec, 0x49, 0x44, 0x29));
}
在没有其它办法下,只好尝试修改PPS的类库,再加上原有签名重新部署一次。
网上找到Reflector的一个插件Reflexil,附上地址
http://reflexil.net/
这个插件能够直接在Reflctor下修改类库,并且保留原有签名, 原本就可以解决我所有问题,但是尝试过后,发现保存后的类库是延迟签名的, 什么延迟签名,可以参考下这链接http://msdn.microsoft.com/en-us/library/t07a3dye.aspx所以不能直接部署到GAC, 头疼花了接近一天的时间, 去寻找如何部署, 在快要绝望的时候, 意外的发现可以使用ilasm对类库再签名, 这就意味着我可以先使用ilasm进行反编译,再使用原有资源进行签名, 为了印证是否正确 ,写了如下指命
进入vs工具命令行ildasm C:\Microsoft.PerformancePoint.Scorecards.ServerRendering.Patched.dll /out:c:\Microsoft.PerformancePoint.Scorecards.ServerRendering.il
进入Microsoft.Net下frameworkilasm c:\Microsoft.PerformancePoint.Scorecards.ServerRendering.il /dll发现能够注册到GAC, 但是又发现了一个问题,传统GAC上根本看不到我注册的dll, 原来又是我粗心了, 使用了.net 4.0的ilasm , 使用到4.0的ilasm重编译的时候会编译成4.0的dll, 放的位置跟2.0的位置是不相同的, 于是使用2.0 ilasm重新试一遍, 大功造成 。在这做一个总结, 要修改原有类库并使用原有签名的步骤是1. 使用Reflexil进行修改,并保存为一个延迟签名的文件2. 使用对应版本的ilasm进行反编译再重编译
使用Reflexil修改类库的更多相关文章
- c#:Reflector+Reflexil 修改编译后的dll/exe文件
不知道大家有没有这样的经历:现场实施时测试出一个bug,明明知道某个dll/exe文件只要修改一二行代码即可,但手头没有开发环境,紧急情况下,可以用reflector + reflexil 临时直接修 ...
- .net reflector+reflexil修改编译后的dll文件
1.用reflector打开相关的dll文件. 2.如果reflector中没有reflexil插件,点击工具栏中的Tools->Add-Ins 3.找到需要修改的文件,双击打开该文件:点击To ...
- Android Studio 将工程作为第三方类库的步骤
一.将工程的module名称修改为自己要添加的类库名称 1.选中module文件夹右键到Rename项 2.选中Rename module项 3.修改为自己的名称,如VolleyLibary 二.修改 ...
- Resharper 修改命名空间
1. 使用Reshared 右键->Refactor->Rename 修改所有文件的命名空间(鼠标移动到对应类的命名空间) 2.修改类库中的命名空间 包括程序集信息 右键->属性 3 ...
- 在普通的"类库"项目中添加 WPF 的 Window 对象
最近开发一个 WPF 项目, 在此项目中有个类库工程, 在开发的过程中发现在类库工程中竟然添加不了 WPF 窗口对象和一些其他的 WPF 对象,在新建窗口中选 WPF 类型,只有一个 “用户控件(WP ...
- OpenLiveWriter代码插件
1.OpenLiveWriter安装 Windows Live Writer在2012年就停止了更新,Open Live Writer(以下简称OLW)是由Windows Live WriterWri ...
- 代码的坏味道(22)——不完美的库类(Incomplete Library Class)
坏味道--不完美的库类(Incomplete Library Class) 特征 当一个类库已经不能满足实际需要时,你就不得不改变这个库(如果这个库是只读的,那就没辙了). 问题原因 许多编程技术都建 ...
- 【无私分享:ASP.NET CORE 项目实战(第四章)】Code First 创建数据库和数据表
目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 本章我们来介绍下Asp.net Core 使用 CodeFirst 创建数据库和表,通过 控制台 和 dotnet ef 两种 ...
- [.NET逆向] 破解NET的四大神器
原本这篇文章可以更早一星期写出来与大家分享,由于某方面的原因耽搁到现在,心里竟有那么一点好像对不住大家的感觉.这当然与神器有关,因为我发现利用这四大神器我似乎觉得几乎所有的NET程序破解都不在话下了 ...
随机推荐
- Sphinx(coreseek) 安装使用以及词库的扩展
1.Sphinx(coreseek) 是啥 一般而言,Sphinx是一个独立的全文搜索引擎:而Coreseek是一个支持中文的全文搜索引擎,意图为其他应用提供高速.低空间占用.高结果相关度的中文全文搜 ...
- Version of SQLCE in WP8
The version on the device is compatible with version 3.5 on the desktop, but the Windows Phone versi ...
- jdbc根据实例名 连接 sql server
jdbc:sqlserver://PC;instanceName=sql2012;databaseName=xxxxx
- 禁用iPhone手机浏览器上给电话号码自动加上的link样式
iPhone手机上的浏览器(如Safari),在解析网页的时候会自动给 像是电话号码的数字 加上link样式. 可以添加下面的meta禁用掉这个功能. // //
- java模拟一个简单的QQ
v 项目源码 https://github.com/hjzgg/java_QQ v 标题效果 package testFour; import java.awt.Color; import ...
- NativeScript工作原理
NativeScript是一个runtime,它提供一些机制可以使用JavaScript构建原生的IOS.Android甚至WP(未来会加入)应用.NativeScript有很多非常酷的功能,比如MV ...
- Dictionary序列化和反序列化
public class SerializeHelper { public static string XmlSerialize(List<CustomSearchEntity> obj) ...
- IE11之F12 Developer Tools--DOM Explorer
使用DOM Explorer工具查看网页的DOM状态.检查HTML结构和CSS样式,并测试更改以解决显示问题.这可以在元素位置错误或行为异常时帮助你诊断问题,然后解决问题. DOM Explorer图 ...
- ompparticles.cpp:(.text+0x322): undefined reference to `omp_set_num_threads'
参考 http://www.code-by.org/viewtopic.php?f=54&t=163
- Jquery对象,DOM对象
jquery对象就是通过Jquery包装Dom对象后产生的对象,Dom对象想要通过jquery进行操作,先转换为jquery对象: dom对象转化为jquery对象,使用$(dom对象): jquer ...