C#脱离平台,.NET(DonNet)脱离框架

天来叫大家如果用linker(连接器)提取框架的类库实现脱离平台,你可以到百度下载Linker,

可以到我这里下载地址:Linker_C#脱离框架_DonNet(.Net)脱离框架  点击下载

很简单的打开你下载的linker文件夹里面有个批处理文件打开

      第一步:打开

   图1:

   第二步:处理掉出现的错误,不能有中文的路径,图2错误的,图3对的

    图2

 

 

 

   图3 :必须把linker文件夹放到英文的路径中,不能存在中文的路径,像图3存在”桌面“中 文路径,在执行命令的时候会出现问题的

               

  C#脱离平台,.NET(DonNet)脱离框架_第1张图片

  

  第三步:执行命令

     图4:

 

 C#脱离平台,.NET(DonNet)脱离框架_第2张图片

 

  

 

                                                                        Linker命令使用说明:

 

本程序已经破解,支持Microsoft .Net Framework 2.0.50727, 3.5.30729版本
使用时,有2种部署方式-mdeploy和-native,-mdeploy方式提取的虚拟环境大概40MB左右,而-native方式则是将MSIL代码转换为NativeImages,配合-il指令使用,最终提取出来的虚拟环境不到30MB,个人推荐使用-native方式。

Steps:
1.设置环境变量path到程序目录。
2.语法:
-mdeploy方式:linker -mdeploy -casoff 您的程序.exe (-casoff是为了避免一些bug)
-native方式:linker -native -il System -il System.* -il mscorlib -il accessibility 您的程序.exe

注意:必须附加这4个-il,意思是指这些程序集不转换为NativeImages,如果未附加-il,则非常耗时,而且提取出来的框架将近100MB。
本版本和移动飞信提取出来的目录结构不一致,没有System文件夹,而在C/WINDOWS/assembly/GAC_MSIL中,包含了所需的dll文件。估计移动飞信使用的是Remotesoft .Net Linker 3.0以上版本(无法证实)

 


用法:连接器[选项] <wfile> inputfiles。

其中inputfiles是一个或一组程序集文件(清单。exe或。dll文件)。
<wfile>表示通配符的文件名可以使用,例如,*. dll文件

常规选项:
 出<文件>指定输出文件。
 三维<路径>指定输出目录来存储生成的代码。
 标<文件签署重要文件输入指定的组件。
 - delsig删除强名称签名,当原始有用
              密钥文件是不可用,但你仍然要处理
              大会。然而,产生的程序集不能重新签名
              任何重要文件。
 - clrversion指定版本的框架,例如,对框架1.1 v1.1.4322
 - ref的<wfile>指定一个外部引用程序集。此选项可以用来
              多次指定一个以上的参考。
 时刻依赖依赖显示模块和程序集引用。
 - R的递归执行的行动。有用的只有时刻依赖。
 -解散拆卸文件,生成ilasm输出。
 - quoteAll报价为生成的所有代码ilasm ilasm标识符。
              使用此关键字时,任何不正确地处理办法。
 - nologo抑制版权输出。
 - verbose详细输出。

连接选项:
 私营<wfile>连接依赖的程序集内部积极作为
              组成部分。此选项可以多次使用指定
              不止一个依赖。
 封闭式自动解决并链接所有相关的DLL,除非
              为mscorlib程序。
 ,解决和链接自动解决依赖DLL。那些在
              同样的目录和分显示目录加载和链接。
 合并不执行按需连接,而是简单地合并所有类型
              进入最后的组装和其成员。
 ,排除<assemblyfilename>
              连接指定的排除大会及其家属。
              非常有用的VC + +中排除。NET中组装。此选项可以
              多次使用指定一个以上的集会。
              例如,排除System.EnterpriseServices.Thunk.dll
 - keepvisibility
              不改变可视性修饰符。默认情况下,市民
              更改为私有程序集内部的被链接
 - addclass的<class>
              指定一类链接到最后的装配。此选项可以
              多次使用指定多个类。
              类格式:[大会] namespace.class,或namespace.class
              例如,- addclass [System.Xml.dll] System.Xml.NameTable
                    - addclass System.Xml.NameTable
 - addmethod <method>
              指定方法链接到最后的装配。此选项约
              多次使用指定多个方法。
              方法格式:[大会] namespace.class.method
                             namespace.class.method
              例如,- addmethod [System.Xml.dll] System.Xml.NameTable.Add
                    - addmethod System.Xml.NameTable.Add
 - addtoken <methodToken或classToken>
              指定一个方法或类标记链接到最后的装配。
              此选项可以多次使用指定许多纪念品。
              令牌格式:[大会]令牌
              例如,- addtoken [System.Xml.dll] 0x02000021
                    - addtoken [System.Xml.dll] 0x06000101
 - exe文件链接,自包含的应用程序,并使用单一
              切入点找到所有需要的类型和成员。
 - dll的链接,库,并以此为切入点市民
              找到所有需要的类型和成员。
 清晰度<文件>指定Win32资源文件(。水库)链接。
 ,保留不删除(临时文件。白细胞介素。资源等)。

选项minideployment和本地编译:
 - mdeploy小不充分部署。NET框架的安装。
 原生编译到本机运行没有图像。NET框架。
              需要。NET框架v2.0.50727以上。
 边删除未使用的代码,但保留作为单独的文件集,无需添加
              合并,这个选项应该用于-mdeploy/-native选项
 - com公司小型部署为托管COM组件。
              应使用此选项与- mdeploy选项。
 - nogacstub不会排放为强命名程序集存根,以节省磁盘空间
              此选项应使用与本机的选择。
 金正日<assembly_name>
              保持,而不是本机代码的程序集的IL代码中指定。
              assembly_name可能包含通配符(*,?),例如,系统.*,
              这个选项应该只用于本机的选择,并可能导致
              多次使用指定多个程序集。
 - supportTempAssembly
              支持临时组装代当迷你部署。
 - casoff禁用代码访问安全性(CAS)的小型部署。
              应使用此选项与- mdeploy选项。
 - STA中执行的COM线程模型是单线程单元
              对于小型部署。
              应使用此选项与- mdeploy选项。
 ,事件日志复制EventLogMessages.dll在minideployment。

 

转至:http://blog.csdn.net/woaixiejian/article/details/5641951

你可能感兴趣的:(.net)