在Microsoft Visual Studio .NET中,让我们开始创建一个新的工程。选择Visual C#工程作为工程类型,Class Library作纳州州为模迹判板。将工程命名为NUnitQuickStart.图4-1是一个描述本步骤的Visual Studio .NET。
第2步.增加一个NUnit框架引用
在Microsoft Visual Studio .NET里创建这个例子时,你需要增加一个NUnit.framework.dll引洞蔽用,如下:
在Solution Explorer右击引用,然后选择增加引用
NUnit.framework组件,在Add Reference对话框中按Select和OK按钮。
第3步.为工程加一个类.
为工程加一个NumbersFixture类。这里是这个例子的代码。
1using System
2using NUnit.Framework
3
4namespace NUnitQuickStart
5{
6[TestFixture]
7public class NumersFixture
8{
public voidpublic [Test]
public 10public 10public10public public voidpublic 9public voidpublic [Test]
public 10public 10public10public public voidpublic [Test]
public 10public 10public10public voidpublic [Test]
public 10public 10public voidpublic [Test]
public 10public voidpublic 10public void AddTwoNumbers()
11{
12int a=1
13int b=2
14int sum=a+b
15Assert.AreEqual(sum,3)
16}
17}
18}
19
第4步.建立你的Visual Studio 工程,使用NUnit-Gui测试
从程序->NUnit2.2打开NUnit-gui,加载本本工程编译的程序集.
为了在Visual Studio .NET中自动运行NUnit-Gui,你需要建立NUnit-Gui作为你的启动程序:
在 Solution Explorer里右击你的NunitQuickStart工程。
在d出菜单中选择属性。
在显示的对话框的左面,点击Configuration Properties夹
选择出现在Configuration Properties夹下的Debugging。
在属性框右边的Start Action部分,选择下拉框的Program作为Debug Mode值。
按Apply按钮
设置NUnit-gui.exe作为Start Application。,你既可以键入nunit-gui.exe的全路径,也可使用浏览按钮来指向它。
第5步.编译运行测试.
现在编译solution。成功编译后,开始应用程序。NUnit-Gui测试运行器出现。当你第一次开始NUnit-Gui,它打开时没有测试加载。从File菜单选择Oprn,浏览NUnitQuickStart.dll的路径。当你加载了测试的程序集,测试运行器为加载的程序集的测试产生一个可见的表现。在例子中,测试程序集仅有一个测试,
按Run按钮。树的节点变为绿色,而且测试运行器窗口上的进度条变绿,绿色代表成功通过。
.Net有两个很好的工具可以反编译.NET程序集:Salamander .Net Decomplier和Reflector.Net ,Salamander .Net Decomplier功能非常强大,可以反编译混淆过的.NE代码,也可以直接将程序集中的类反编译成一个文件,但是它是需要money的,试用版提供的功能又非常有限。相对而言呢,Reflector.net 是完全免费的,但是它只能一个方法一个方法的查看,不能将程序集直接反编译成一个文件,这样也比较麻烦,好就好在它支持插件add-in功能。针对它的缺点,很多人开发了很好用的插件,可以将整个程序集的代码反编译成源文件,比如说Reflector.FileDisassembler 、Reflector.FileGenerator 都是很好用的。另外再提供一些Reflector的相关插件下载,enjoy!!!!
插件FileGenerator 使用方法:
最开始下载了FileGenerator插件不知如何使用,后来经过摸索,还是学会使用了,所以拿来和大家分享。
FileGenerator插件的作用是:根据dll文件,把里面的源文件导出成文件,导出来的文件除了没有注释,变量名也变了,其它的可谓是没有 差别。对于一些比较好的控件,如果不是开源的,完全可以导出成文件,然后自己加上注释,少许修改,很好的利用起来。(不开源的dll,用起来也不放心啊)
先根据上面的地址下载FileGenerator并解压缩,然后运行Reflector.exe,然后点击View->Add- Ins...,d出一个窗口,然后点击Add->选择FileGenerator里面的厅漏唯一一个dll文件: "FileGenerator.dll",点击close.
然后回到Reflector窗口,Tool->Generator File(s)... 右边就出现了插件的窗口,选中左边的dll文件,点击右边的导出文件,源代码就全部导出来了,真是爽啊!
使用.NET Reflector插件FileDisassembler还原源码
.NET Reflector,它是一个类浏览器和反编译器,可以分析程序集并向您展示它的所有秘密。.NET 框架向全世界引入了可用来分析任何基于 .NET 的代码(无论它是单个类还是完整的程序集)的反射概念。反射还可以用来检索有关特定程序集中包含的各种类、方法和属性的信息。使用 .NET Reflector,您可以浏览程序集的类和方法,可以分析由这些类和方法生成的 Microsoft 中间语言 (MSIL),并且可以反编译这些类和方法并查看 C# 或 Visual Basic ?.NET 中的等价类和方法。
为了演示 .NET Reflector 的工作方式,我将加载和分析前面已经显示的 NUnitExample 程序集。下图显示了 .NET Reflector 中加载的该程序集。
在 .NET Reflector 内部,有各种可用来进一步分析该程序集的工具。要查看构成某个方法的 MSIL,请单击该方法并从纤扮菜单中选择 Disassembler。
除了能够查看 MSIL 以外,您还可以通过选择 Tools 菜单下的 Decompiler 来查看该方法的 C# 形式。通过在 Languages 菜单下更改您的选择,您还可以查看该方法被反编译扮竖烂到 Visual Basic .NET 或 Delphi 以后的形式。以下为 .NET Reflector 生成的代码:
public void HashtableAddTest(){
Hashtable hashtable1
hashtable1 = new Hashtable()
hashtable1.Add("Key1", "value1")
hashtable1.Add("Key2", "value2")
Assert.AreEqual("value1", hashtable1["Key1"], "Wrong object returned!")
Assert.AreEqual("value2", hashtable1["Key2"], "Wrong object returned!")
}
前面的代码看起来非常像我为该方法实际编写的代码。以下为该程序集中的实际代码:
public void HashtableAddTest(){
Hashtable ht = new Hashtable()
ht.Add("Key1", "value1")
ht.Add("Key2", "value2")
Assert.AreEqual("value1", ht["Key1"], "Wrong object returned!")
Assert.AreEqual("value2", ht["Key2"], "Wrong object returned!")
}
尽管上述代码中存在一些小的差异,但它们在功能上是完全相同的。
虽然该示例是一种显示实际代码与反编译代码之间对比的好方法,但在我看来,它并不代表 .NET Reflector 所具有的最佳用途 — 分析 .NET 框架程序集和方法。.NET 框架提供了许多执行类似 *** 作的不同方法。例如,如果您需要从 XML 中读取一组数据,则存在多种使用 XmlDocument、XPathNavigator 或 XmlReader 完成该工作的不同方法。通过使用 .NET Reflector,您可以查看 Microsoft 在编写数据集的 ReadXml 方法时使用了什么,或者查看他们在从配置文件读取数据时做了哪些工作。.NET Reflector 还是一个了解以下最佳实施策略的优秀方法:创建诸如 HttpHandlers 或配置处理程序之类的对象,因为您可以了解到 Microsoft 工作组实际上是如何在框架中生成这些对象的。
.NET Reflector 由 Lutz Roeder 编写
支持。DevExpress的安装说明
编译需要准备的内容如下:
1、DXperience-11.1.8.exe 官方安装包
2、DX2011.1.8_src.7z 源代码
3、DevExpress 11.1 编译脚本(Sources.zip)
4、安装 NNuit 安装包(NUnit-2.6.0.11324.msi)
5、Silverlight 3 Toolkit November 2009.msi
6、DevExpressRegSetup_v11.1.8.exe 注册工具
7、附带一个国际化语言包 Language.zip
安装前需要的开发工具:VS2008、VS2010 SP1版
8、安装 Silverlight Toolkit,在安装目录下找到 Microsoft.Silverlight.Testing.dll和 Microsoft.VisualStudio.QualityTools.UnitTesting.Silverlight.dll,将其部署到
GAC中,并将副本拷贝至 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\下
9、所需的DLL(DevExpress.DLL.zip):ActiveReports.Viewer3.dll、ActiveReports3.dll、System.Data.SQLite.DLL、Moq.dll
10、我的编译环境是:Windows 7 X32,VS2010 SP1,需要特别声明,必须安装VS2008,否则,将找不到编译所需的 Microsoft.CompactFramework.CSharp.targets 和Microsoft.CompactFramework.Common.targets
11、将目录 C:\Windows\Microsoft.NET\Framework\v3.5\ 下的Microsoft.CompactFramework.CSharp.targets 和Microsoft.CompactFramework.Common.targets 的副本拷贝至 C:\Windows\Microsoft.NET\Framework\v2.0.50727
编译步骤如下:
1、安装DevExpress控件包,最好选择完全安装,避免出错。
2、运行DevExpressRegSetup_v11.1.8.exe进行注册
3、将源代码(DX2011.1.8_src.7z)解压缩至 C:\Program Files (x86)\DevExpress2011.1\Components\Sources,如果遇到重复的直接覆盖。
4、将编译脚本(Sources.zip)解压至 C:\Program Files (x86)\DevExpress2011.1\Components\Sources。
4、将 安装目录下的Sources 目录下的所有文件属性改为可写,默认是只读。
5、执行粗歼 Sources 目录下的 Clear.bat,该脚本将清空所有 GAC 中的 DevExpress 注册信息和清空原培脊有的程序集。
6、将上述第9点所需的DLL副本拷贝至 Sources\DevExpress.DLL 下。
7、使用编译命令:buildall.cmd /silent>build.txt,将使用静默配凳渗编译,编译过程中的内容输出至 build.txt 文件中。
8、编译完成后,使用命令注册工具箱:ToolboxCreator.exe /INI:toolboxcreator.ini/LOG:gucs.log,卸载工具箱的命令是:ToolboxCreator.exe /INI:toolboxcreator.ini
/Remove。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)