再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题
生活随笔
收集整理的這篇文章主要介紹了
再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
上一篇關(guān)于推薦SQL Prompt 3.8的隨筆,園子里幾位朋友回復(fù)反應(yīng)不能使用格式化功能,并強(qiáng)烈要求再次解決該問(wèn)題,
????? 所以昨天晚上弄到凌晨2點(diǎn),最終的SQL Prompt補(bǔ)丁:
下載地址:/Files/jintan/Sql_Prompt_RedGate.Licensing.Client.rar
支持格式化SQL
其實(shí)破解過(guò)程很簡(jiǎn)單,沒有涉及到脫殼,跟蹤等。
大致的思路是這樣的:
public int DaysLeftInTrial 這個(gè)屬性返回值大于0,我這里是14,
???????public?int?DaysLeftInTrial
????????{
????????????get
????????????{
????????????????int?days;
????????????????if?(this.TrialStatus?!=?TrialStatus.InTrial)
????????????????{
????????????????????return?0;
????????????????}
????????????????if?(this.d?==?DateTime.MinValue)
????????????????{
????????????????????TimeSpan?span?=?DateTime.UtcNow.Subtract(this.b);
????????????????????days?=?14?-?span.Days;
????????????????}
????????????????else
????????????????{
????????????????????days?=?this.d.Subtract(DateTime.UtcNow).Days;
????????????????}
????????????????if?(days?<?0)
????????????????{
????????????????????days?=?14;
????????????????}
????????????????return?days;
????????????}
????????}?
為了保險(xiǎn)起見,我又修改了TrialStatus ,
public?TrialStatus?TrialStatus?
{?
?????get{return?TrialStatus.InTrain;?}?
?????set{.}?
}?
這樣已經(jīng)可以保證永遠(yuǎn)都是試用并且不過(guò)期。
最后修改IL代碼,我用的是http://www.codeproject.com/KB/dotnet/NetDasm.aspx這個(gè)工具修改IL,配合Reflector使用
當(dāng)然你也可以直接用SDK里面的ildasm+ilasm工具修改。
這次不用做去掉強(qiáng)命名的操作了,直接copy到目錄覆蓋原來(lái)的就行了。
注意:經(jīng)測(cè)試,一定要去掉強(qiáng)命名才能使用,請(qǐng)自己去掉RedGate.Licensing.Client.dll的強(qiáng)命名。
對(duì)于Red-Gate的其他產(chǎn)品,同樣可以使用上面的方法,應(yīng)該沒有問(wèn)題的。
注:
上個(gè)版本修改的地方是:
public?bool?get_Activated()
{
????return?true;
} 對(duì)應(yīng)的IL:
Code: method public hidebysig specialname instance bool get_Activated() cil managed { .maxstack 8 L_0000: ldc.i4.1 L_0001: ret } 但是不知道什么原因,格式化的菜單一直是灰色。所以才有現(xiàn)在的這個(gè)Patch
????? 所以昨天晚上弄到凌晨2點(diǎn),最終的SQL Prompt補(bǔ)丁:
下載地址:/Files/jintan/Sql_Prompt_RedGate.Licensing.Client.rar
支持格式化SQL
其實(shí)破解過(guò)程很簡(jiǎn)單,沒有涉及到脫殼,跟蹤等。
大致的思路是這樣的:
public int DaysLeftInTrial 這個(gè)屬性返回值大于0,我這里是14,
???????public?int?DaysLeftInTrial
????????{
????????????get
????????????{
????????????????int?days;
????????????????if?(this.TrialStatus?!=?TrialStatus.InTrial)
????????????????{
????????????????????return?0;
????????????????}
????????????????if?(this.d?==?DateTime.MinValue)
????????????????{
????????????????????TimeSpan?span?=?DateTime.UtcNow.Subtract(this.b);
????????????????????days?=?14?-?span.Days;
????????????????}
????????????????else
????????????????{
????????????????????days?=?this.d.Subtract(DateTime.UtcNow).Days;
????????????????}
????????????????if?(days?<?0)
????????????????{
????????????????????days?=?14;
????????????????}
????????????????return?days;
????????????}
????????}?
為了保險(xiǎn)起見,我又修改了TrialStatus ,
public?TrialStatus?TrialStatus?
{?
?????get{return?TrialStatus.InTrain;?}?
?????set{.}?
}?
這樣已經(jīng)可以保證永遠(yuǎn)都是試用并且不過(guò)期。
最后修改IL代碼,我用的是http://www.codeproject.com/KB/dotnet/NetDasm.aspx這個(gè)工具修改IL,配合Reflector使用
當(dāng)然你也可以直接用SDK里面的ildasm+ilasm工具修改。
這次不用做去掉強(qiáng)命名的操作了,直接copy到目錄覆蓋原來(lái)的就行了。
注意:經(jīng)測(cè)試,一定要去掉強(qiáng)命名才能使用,請(qǐng)自己去掉RedGate.Licensing.Client.dll的強(qiáng)命名。
對(duì)于Red-Gate的其他產(chǎn)品,同樣可以使用上面的方法,應(yīng)該沒有問(wèn)題的。
注:
上個(gè)版本修改的地方是:
public?bool?get_Activated()
{
????return?true;
} 對(duì)應(yīng)的IL:
Code: method public hidebysig specialname instance bool get_Activated() cil managed { .maxstack 8 L_0000: ldc.i4.1 L_0001: ret } 但是不知道什么原因,格式化的菜單一直是灰色。所以才有現(xiàn)在的這個(gè)Patch
轉(zhuǎn)載于:https://www.cnblogs.com/jintan/archive/2008/06/16/1223282.html
總結(jié)
以上是生活随笔為你收集整理的再次发布SQL Prompt 3.8的新的patch,解决了不能格式化T-SQL的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vb.net 如何从文件中读取图像
- 下一篇: js在上传图片前判断大小