Castle学习之一:安装与环境设置
第一步,当然是下载了。
我本来下载的是Castle RC2的MSI安装文件,并通过SVN下载了Generator,但是安装后发现了一些问题(主要是.net版本的问题),所以删除了之后,从SVN下载了全部最新的代码,然后用NAnt在.net 2.0环境下编译。
具体操作:
1,安装TortoiesSVN;
2,建立新目录:D:\working\Castle.SVN\
3,右击新建目录的图标,SVN CheckOut: http://svn.castleproject.org:8080/svn/castle/trunk/
(以下步骤参照下载下来的how to build.txt)
4,打开命令行,切换到D:\Working\Castle.SVN目录,执行命令: nant -t:net-2.0(当然前提是安装了NAnt)
这个过程比较长,持续了大约10分钟左右.最后生成了一个新目录: D:\working\Castle.SVN\build\net-2.0\debug .我们所需要引用的DLL就包含在这个目录里了(哪位能说一下怎么生成.net 2.0下的Release版?).
5,在本地的Sql Server上建立两个空数据库test, test2
第二步,尝试使用ActiveRecord.
这一步我基本上是跟着ActiveRecord Getting Started里的介绍在做,只不过没有使用VS的项目模板:
1,在Visual Studio 2005里新建一个Class Library项目,添加对以下dll的引用: Castle.ActiveRecord, Castle.Core, Castle.DynamicProxy, log4net, NHibernate.
2,录入代码:
School.cs
TClass.cs
由于个人更喜欢Guid类型的主键,所以没有完全照搬教程的代码,而是做了一些修改.
编译,通过.好了,下一步写点测试代码吧.
Getting Started里用的是Winform,我顺便改成了使用NUnit的测试.
SchoolTest.cs
测试,OK!
需要注意的几点:
1,ActiveRecord里主键默认是int类型,改成Guid之后,PrimaryKey属性必须声明为[PrimaryKey(PrimaryKeyType.Guid)],否则进行数据库操作时会出错.
2,ActiveRecord里主键不应该被赋值,即使赋值了添加到数据库时也会因为重新生成主键而丢失.
3,这个版本的ActiveRecordStarter.CreateSchemaFromFile好像有点问题,执行后没有任何效果,而且不报任何错误.
我本来下载的是Castle RC2的MSI安装文件,并通过SVN下载了Generator,但是安装后发现了一些问题(主要是.net版本的问题),所以删除了之后,从SVN下载了全部最新的代码,然后用NAnt在.net 2.0环境下编译。
具体操作:
1,安装TortoiesSVN;
2,建立新目录:D:\working\Castle.SVN\
3,右击新建目录的图标,SVN CheckOut: http://svn.castleproject.org:8080/svn/castle/trunk/
(以下步骤参照下载下来的how to build.txt)
4,打开命令行,切换到D:\Working\Castle.SVN目录,执行命令: nant -t:net-2.0(当然前提是安装了NAnt)
这个过程比较长,持续了大约10分钟左右.最后生成了一个新目录: D:\working\Castle.SVN\build\net-2.0\debug .我们所需要引用的DLL就包含在这个目录里了(哪位能说一下怎么生成.net 2.0下的Release版?).
5,在本地的Sql Server上建立两个空数据库test, test2
第二步,尝试使用ActiveRecord.
这一步我基本上是跟着ActiveRecord Getting Started里的介绍在做,只不过没有使用VS的项目模板:
1,在Visual Studio 2005里新建一个Class Library项目,添加对以下dll的引用: Castle.ActiveRecord, Castle.Core, Castle.DynamicProxy, log4net, NHibernate.
2,录入代码:


由于个人更喜欢Guid类型的主键,所以没有完全照搬教程的代码,而是做了一些修改.
编译,通过.好了,下一步写点测试代码吧.
Getting Started里用的是Winform,我顺便改成了使用NUnit的测试.

测试,OK!
需要注意的几点:
1,ActiveRecord里主键默认是int类型,改成Guid之后,PrimaryKey属性必须声明为[PrimaryKey(PrimaryKeyType.Guid)],否则进行数据库操作时会出错.
2,ActiveRecord里主键不应该被赋值,即使赋值了添加到数据库时也会因为重新生成主键而丢失.
3,这个版本的ActiveRecordStarter.CreateSchemaFromFile好像有点问题,执行后没有任何效果,而且不报任何错误.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~