想下载打包好的破解补丁直接到文章底部查看链接。
以前一直使用SVN都是用的小乌龟(TortoiseSVN)直接在文件夹下更新上传,直到现在这个项目才开始用Visual SVN。因为我们项目使用的是VS2012,所以不得不使用当时最新的Visual SVN版本4.0.8,Visual SVN最大的好处就是在VS程序中内置菜单等,可以直接在VS中更新工程。
但是,用着用着问题来了,Visual SVN不是免费的,有试用期…本着只要有收费,就会有破解的思想,我开始在网上疯狂的寻找破解补丁。然而,我承认我的懒惰是没有办法得逞的。因为当时版本还比较新,网上并没有网友共享出来的破解包,但是却有一些破解方法。因此我只好跟着破解方法一点一点尝试,结合多重情况,终于成功破解。下面放出我的破解过程。
首先,我找到了一篇13年的文章,我觉得还挺靠谱的《VisualSVN破解》(http://www.cnblogs.com/poissonnotes/archive/2013/09/06/3304802.html),可是在我尝试过以后发现,没有效果…然后坚持不懈的我继续找…又找到11年的一篇文章,尽管11年的,但是破解思路是不一样的,而且看起来还比较靠谱《破解Visual SVN》(http://blog.csdn.net/nocky/article/details/6781179)。我又尝试,失败-_-!!你能忍吗?我忍不了了!我又开始尝试在网上找破解补丁,终于,找到了一个4.0.7的补丁,我想,这应该可以用了吧,可是现实又把我打败了,依然不行。最后我尝试总结之前的破解,尝试我自己的思路。下面才是正题,开始破解:
1. 进入.NET Framework命令提示符(从程序里面的Visual Studio Tools里面可以找到),输入: ildasm “VisualSVN安装目录\bin\VisualSVN.Core.L.dll” /out=输出路径文件名.il
如:ildasm “D:ProgramFiles\VisualSVN\bin\VisualSVN.Core.L.dll” /out=D:\file\VisualSVN.Core.L.il
2. 文本编辑器打开刚才输出的il文件,查找:
KeyToLicenseUnsafe(class VisualSVN.Core.IDecoder decoder,
string key)
将该方法括号内的代码体对应的键值对替换如下:
.maxstack 2
.locals init (class VisualSVN.Core.Licensing.License V_0,
class VisualSVN.Core.Licensing.License V_1,
class VisualSVN.Core.Licensing.License V_2)
IL_0000: nop
IL_0001: newobj instance void VisualSVN.Core.Licensing.License::.ctor()
IL_0006: stloc.1
IL_0007: ldloc.1
IL_0008: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MinValue
IL_000d: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
IL_0012: ldloc.1
IL_0013: ldc.i4.1
IL_0014: stfld valuetype VisualSVN.Core.Licensing.LicenseBinding VisualSVN.Core.Licensing.License::Binding
IL_0019: ldloc.1
IL_001a: ldc.i4 0x7ffffffe
IL_001f: stfld int32 VisualSVN.Core.Licensing.License::Capacity
IL_0024: ldloc.1
IL_0025: ldsfld valuetype [mscorlib]System.DateTime [mscorlib]System.DateTime::MaxValue
IL_002a: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::EndTime
IL_002f: ldloc.1
IL_0030: ldc.i4.2
IL_0031: stfld valuetype VisualSVN.Core.Licensing.LicenseType VisualSVN.Core.Licensing.License::Type
IL_0036: ldloc.1
IL_0037: ldstr “100”
IL_003c: stfld string VisualSVN.Core.Licensing.License::PurchaseId
IL_0041: ldloc.1
IL_0042: call string [mscorlib]System.Environment::get_UserName()
IL_0047: stfld string VisualSVN.Core.Licensing.License::LicensedTo
IL_004c: ldloc.1
IL_004d: stloc.0
IL_004e: ldloc.0
IL_004f: ldloc.0
IL_0050: ldfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::StartTime
IL_0055: stfld valuetype [mscorlib]System.DateTime VisualSVN.Core.Licensing.License::PurchaseDate
IL_005a: ldloc.0
IL_005b: stloc.2
IL_005c: br.s IL_005e
IL_005e: ldloc.2
IL_005f: ret
保存。
3. 回到命令行输入”ilasm 刚才的il文件 /dll”
例如:ilasm D:\VisualSVN.Core.L.il /dll
4.编译得到新的dll重命名后覆盖原VisualSVN.Core.L.dll。
5.破解完毕,打开VS.NET,点击VisualSVN菜单->About。效果呈现在你眼前。
PS:已编译好的破解补丁请自行下载:http://download.csdn.net/detail/qq369749721/8115001
我的博客地址:http://90itboy.com/