Friday, November 12, 2010

build and depoly referenced library in special path rather than application path for .Net application

 
如何将依赖的.Net library放在一个专门的目录?

一般情况下, .Net程序的library需要部署在GAC或者exe的目录下, GAC部署不是一种xcopy方式, 我几乎不用, 多数是直接将lib放在应用程序的目录下.

有没有办法将这些lib放到一个特定的目录呢? 其实.Net有多种机制, 可以实现这样的要求. 下面介绍一种最实用而且是最常用的lib部署机制, 在应用程序exe的config文件中, 增加privatePath设置, 告诉应用程序在哪些目录下查找依赖的lib. 对于web应用, 设置privatePath应该在web.config中.

让我们看看下面2个场景, 该如何编译和部署程序.
 场景1, 我们有app1.exe, 它引用了core1.dll, 在core1.dll中引用了oracle.dll和mysql.dll, 我想把oracle.dll和mysql.dll分别部署在 db_provider/oracle和db_provider/mysql中. 而core1.dll和app1.exe仍然在同一个目录下.
 场景2, 我们有app2.exe, 它直接引用了引用了oracle.dll和mysql.dll. 我想把oracle.dll和mysql.dll分别部署在 db_provider/oracle和db_provider/mysql中.

其实, 这2个场景的处理方式完全一样.

如何编译?
1. 在app1.exe(场景1)和app2.exe(场景2)的项目中增加app.config文件, 在其中增加下面的privatePath.见本文最后部分的代码
2. 和正常项目完全一样, 直接在app1和app2项目中引用所依赖的lib
3. 用VS编译app1和app2项目

如何部署?
VS编译输出的lib都放在了app1.exe和app2.exe目录下了, 你需要手动创建目录db_provider/oracle和db_provider/mysql, 并将oracle.dll和mysql.dll移过去. 当然, 最好是将这个步骤做成bat文件, 甚至将bat放在VS的build事件中, 这样在每次build后, 都自动完成文件整理工作.


下面是应用程序的app.config的内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
 <runtime>
   <assemblyBinding
      xmlns="urn:schemas-microsoft-com:asm.v1">
     <probing privatePath="db_provider/oracle;db_provider/mysql"/>
   </assemblyBinding>
 </runtime>
</configuration>
 


Saturday, October 23, 2010

how author help document for .Net API


simple-talk.com上看到很有价值的一个文章, 在用vs2005/2008编写C#类以及api时候, 我们通常会写一些代码注释, 但如何将这些代码中的注释转换为chm等帮助文档, 一直不太清楚, 下面这篇文章将的很透彻, 需要好好拜读.  作者为Michael Sorens, 他同时也有2个很优秀的开源项目, open-source web sites (cleancode.sourceforge.net andSqlDiffFramework.codeplex.com),  

cleancode包含很多的C#组件, 比如ChameleonRichTextBox语法高亮编辑框, ExtendedDataGridView强大的gridview, SqlEditor很棒的sql 编辑器. 

SQlDiffFramework, 可能对我现在开发的软件, 借鉴意义更大, 不论是代码, 还是feature, 都值得好好学习. 



Taming Sandcastle: A .NET Programmer's Guide to Documenting Your Code


Saturday, October 9, 2010

Monday, September 20, 2010

Dotnet micro framework on smart device

比.Net CF更小巧的.Net Micro Framework

.Net Micro Framework是什么?
.Net Micro Framework是微软专门针对超轻量级平台设计的软件架构。与.Net Framework和.Net Compact
Framework不同的地方是,.Net Micro
Framework具有自启动的特性,并且在HAL层,微软将操作系统的必要特性引入,如:启动管理、中断处理、线程调度、内存管理等。.Net
Micro Framework可以单独使用,不需要依托其它操作系统,因此占用空间很小。
.NET Micro Framework对存储器和处理器的要求更低。开发人员可以在低功耗、低成本的ARM7、ARM9、Blackfin和Cortex-M3处理器上使用该框架(不需要MMU支持),所开发出来的软件仅需要几百Kbytes的RAM或Flash/ROM存储空间。而Windows
Embedded CE的托管代码环境需要约10~12Mbytes的存储空间,基于.NET的应用编程设备只需要较少的存储空间,降低了产品成本。

博客.Net Micro Framework 快速入门
http://blog.csdn.net/yefanqiu/archive/2010/03/02/5340560.aspx

博主的公司, 叶帆科技|卓越.品质.专业 -
www.sky-walker.com.cn

讨论组: 专注.NET Micro Framework开发
http://space.cnblogs.com/group/MFSoft/

--
This message was sent via writer.bighugelabs.com.
Please report spam or any violations of the terms of use including
copyright and other violations to support@bighugelabs.com.

Saturday, September 4, 2010

Niubi Chinese blog list(牛逼博客)

http://thisislaoxu.blog.163.com/blog/static/1395665192010426369182/

牛逼博客分类推荐

默认分类 2010-05-26 15:06:09 阅读37 评论0  字号: 订阅


扯蛋类博客:王小峰    和菜头    韩寒    东东枪  马日拉
科普类博客:土摩托    科学松鼠会
摄影类博客:吴玮    Quang-Tuan Luong  Ken Rockwell
影评类博客:红袖添饭   卓别灵
情感类博客:庄雅婷    连岳
文青类博客:宋石男    罗永浩    柴静
思想类博客:刘瑜    崔卫平    孙国栋
乐评类博客:马世芳  张铁志
美食类博客:陈晓卿
图片类博客:张发财  李小乖
书评类博客:老六    比目鱼    黄集伟  贝小戎
科技类博客:尚进    瘾科技 
英语类博客:志萍的三分田