【乔梁】用Nant和Nunit构建C#项目

2023-11-03 22:31

本文主要是介绍【乔梁】用Nant和Nunit构建C#项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以前没使用Nant和Nunit建立过C#代码的自动化构建,今天自己写了一个C#程序,想用Nant和Nunit构建C#代码。可写好build文件后运行UnitTest时遇到了麻烦。命令行提示如下:
Could  not  load file or assembly 'nunit . framework ,  Version = 2.4 . 3.0 ,  Culture = neutral ,  PublicKeyToken = 96d09a1eb7f44a77' or one of its dependencies .  The system cannot  find  the file specified .

查了一下资料解决了这个问题。

解决方法是:

一、在该程序的config文件(如果程序名是money.dll,则该文件名为money.dll.config)中加入如下代码:

xml version="1.0" encoding="utf-8"  ?>
< configuration >
    
< runtime >
        
< assemblyBinding  xmlns ="urn:schemas-microsoft-com:asm.v1" >
            
< dependentAssembly >
                
< assemblyIdentity  name ="nunit.framework"  publicKeyToken ="96d09a1eb7f44a77"  culture ="Neutral"   />
                
< bindingRedirect  oldVersion ="2.0.6.0"  newVersion ="2.4.3.0"   />
                
< bindingRedirect  oldVersion ="2.1.4.0"  newVersion ="2.4.3.0"   />
            
dependentAssembly >
        
assemblyBinding >
    
runtime >     
configuration >


二、使用VS2005提供的gacutil把nant.core.dll 和 nant.framework.dll注册一下。具体做法是:

1、在window开始菜单用运行VS所带的Visual Studio 2005 Command Prompt。

2、切换到nunit的bin目录下

3、顺序运行下列命令
gacutil  / i nunit.core.dll                             // 注册core

gacutil 
/ i nunit.framework.dll                 //注册framework

gacutil 
/ l                                                    //查看是否注册上

三、大功告成。

现在运行 nant unittest 就完事大吉。

附 nant 的 build 文件如下:

xml version="1.0" ?>
< project  name ="CSharpMoney"  default ="ut" >
  
< property  name ="output.dir"  value ="../bin"   />
  
< property  name ="output.dll"  value ="../bin/cs-money.dll"   />
  
< property  name ="reports.dir"  value ="../reports" />
  
< target  name ="clean" >
    
< delete  dir ="${output.dir}" />
    
< delete  dir ="${reports.dir}" />
  
target >
  
< target  name ="copyfile"  depends ="clean" >
    
< mkdir  dir ="${output.dir}"  unless ="${directory::exists(output.dir)}"   />
    
< copy  file ="../nunit/bin/nunit.framework.dll"  todir ="${output.dir}"  
      if
="${file::exists('nunit/bin/nunit.framework.dll')}"   />
  
target >
  
< target  name ="build"  depends ="copyfile" >
    
< csc  target ="library"  output ="${output.dll}"  debug ="true" >
      
< sources >
          
< include  name ="*.cs"   />
      
sources >
      
< references >
        
< include  name ="../nunit/bin/nunit.framework.dll"   />
      
references >
    
csc >     
  
target >
  
< target  name ="ut"  depends ="build" >
    
< mkdir  dir ="${reports.dir}" />
    
< exec  program ="..NUnit unit-console.exe" >
      
< arg  value ="${output.dll}" />
      
< arg  value ="/config=cs-money.dll.config" />
      
< arg  value ="/xml=${reports.dir}TestReport-Unit.xml" />
      
< arg  value ="/nologo" />
      
< arg  value ="/noshadow" />
    
exec >
  
target >
project >

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-364792/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-364792/

这篇关于【乔梁】用Nant和Nunit构建C#项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/341308

相关文章

基于 Cursor 开发 Spring Boot 项目详细攻略

《基于Cursor开发SpringBoot项目详细攻略》Cursor是集成GPT4、Claude3.5等LLM的VSCode类AI编程工具,支持SpringBoot项目开发全流程,涵盖环境配... 目录cursor是什么?基于 Cursor 开发 Spring Boot 项目完整指南1. 环境准备2. 创建

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

C# LiteDB处理时间序列数据的高性能解决方案

《C#LiteDB处理时间序列数据的高性能解决方案》LiteDB作为.NET生态下的轻量级嵌入式NoSQL数据库,一直是时间序列处理的优选方案,本文将为大家大家简单介绍一下LiteDB处理时间序列数... 目录为什么选择LiteDB处理时间序列数据第一章:LiteDB时间序列数据模型设计1.1 核心设计原则