[发明专利]动态生成和编译.NET项目的方法有效
申请号: | 201310040887.2 | 申请日: | 2013-01-31 |
公开(公告)号: | CN103077038A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 张亮;李跃海 | 申请(专利权)人: | 北京金和软件股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45 |
代理公司: | 北京远大卓悦知识产权代理事务所(普通合伙) 11369 | 代理人: | 史霞 |
地址: | 100093 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 动态 生成 编译 net 项目 方法 | ||
技术领域
本发明涉及计算机技术领域,更具体地说,涉及.NET项目的动态生成和编译,可应用于一切需要动态生成和编译.NET项目的产品中。
背景技术
在软件的开发过程中经常需要动态生成并编译项目,这样可以使软件在运行时根据具体需要灵活的生成并加载项目。目前.NET常用的生成与编译项目的方法是利用CodeDom组件下的代码生成与编译接口。但是这种方法开发复杂、代码量大,而且如果需要动态创建多个项目时,会出现很多重复的代码开发。另外还有使用msbuild命令来编译项目,这种方法需要在代码里调用dos命令来执行,将软件部署到服务后经常会遇到权限的问题。
发明内容
本发明针对现有技术的弊端,提供一种动态生成、编译.NET项目的方法,使软件开发人员可以简单的实现项目的动态生成及编译过程,并且避免重复的代码开发工作,代码量少,并且不依赖开发环境VisualStudio。
为了解决现有方法中开发复杂、代码量大的问题,本发明提供了一种有效的方法来使动态生成与编译项目开发起来更加简单、代码量少。
在介绍技术方案之前,首先介绍一下项目模板和类模板的含义,这些模板需要提前准备好。
1)项目模板就是整个项目架构,就是解决方案项目的模板:根据项目类型抽象出项目的文件结构及需要的项,放到项目模板的文件夹下,并将项目文件.csproj也就是解决方案文件中的内容进行修改,将可变项用参数<#param#>的方式进行替换。
2)类模板,其为项目模板下的子模板:根据项目中需要创建的T4模板类文件。通常类模板为.cs类文件。
本发明的技术方案如下:
1)创建项目文件夹,复制项目模板文件夹下的文件到项目文件夹下,还要编译。修改项目文件.csproj中的参数信息,例如项目名称等,保存项目文件.csproj。
2)系统接收Dictionary<string,string>字典类型的参数信息,读取类模板,用参数信息替代模板中信息,形成类文件。调用文本模板宿主工具(为文本模板转换引擎提供运行环境),根据接收的参数信息生成类文件到指定文件夹下(其在项目文件夹下)。修改.csproj文件的ItemGroup节点,在该节点下增加Compile节点,将生成的类文件添加到项目中。
3)系统调用.NET提供的Engine类下的BuildProjectFile方法编译项目,生成dll到相应文件夹。
本发明采用模板方法,将项目中共有的东西及类中共有的东西均模板化,避免了codedom方式中重复的创建过程及复杂的开发过程。另一方面,根据类模板生成类文件时没有使用TextTransform.exe工具,而是使用自己编写的自定义文本模板宿主工具,它不依赖Visual Studio工具,这样就降低了软件运行对环境的要求。
本发明可以独立封装成组件,可以应用到一切需要动态生成及编译.net项目的软件产品中。
附图说明
图1为本发明的流程图,可以进一步的表明本发明的基本原理。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
如图1所示,本发明的方法包括:
1)创建项目文件夹,复制模板项目文件夹中的内容到该文件夹下。
2)修改项目文件.csproj。
3)调用自定义文本模板宿主,读取类模板及传入的参数信息生成类文件。
4)判断类文件是否生成成功,如果失败则返回项目生成失败,如果成功则继续。
5)通过修改项目文件.csproj添加类文件到项目中。
6)编译项目,如果编译失败则返回项目生成失败,如果成功则返回项目生成成功。
具体而言,本发明公开了一种动态生成和编译.NET项目的方法,包括以下步骤:
步骤一、根据项目的整体架构构建项目模板和构成项目模板的类模板;
步骤二、创建项目文件夹,将包括类模板在内的项目模板下的项目文件复制到项目文件夹下,并进行编译;
步骤三、系统接收参数信息,读取项目文件夹下的类模板,调用文本模板宿主工具,并根据接收的参数信息生成类模板下的类文件到位于项目文件夹下的指定文件夹下;
步骤四、修改项目文件的项目组节点,在该节点下增加编译节点,在节点的指引下,将生成的类文件添加到项目中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金和软件股份有限公司,未经北京金和软件股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310040887.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:浮动发电器
- 下一篇:带防护罩的减温水调节阀