如何构建Castle.Core,Castle.ActiveRecord和NHibernate以实现部分信任? Web上有大量资源显示如何完成此操作,但是我找到的每个站点都说使用nant build -D:assembly.allow-partially-trusted-callers=true
来构建每个程序集。当我在这里查看Castle.Core trunk时,没有* .build文件。
如何实现这一目标?我使用的是.NET 3.5。这不是一个Web应用程序。
编辑:我们正在使用NHibernate 2.1.2GA(我相信最新的稳定版本)。下面给出的说明的问题是它们看起来像是指从trunk创建Castle.Core和Castle.ActiveRecord。 Trunk似乎要求NHibernate 3.0.0与我们的版本不匹配。
几乎所有的调整都是在项目属性下的“安全”选项卡中完成的。
此外,由于应用程序和SQL Server位于不同的域下,因此我必须将连接字符串设置为包含数据库服务器域。所以我的原始连接字符串数据源必须从“Data Source = DB_SERVER”变为“Data Source = DB_SERVER.DOMAIN”。
最后,我必须在所有配置部分设置requirePermission="false"
。我的configSections
就这样结束了:
<configSections>
<section name="activerecord" type="Castle.ActiveRecord.Framework.Config.ActiveRecordSectionHandler, Castle.ActiveRecord" requirePermission="false"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" requirePermission="false"/>
<section name="nhibernate" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="hibernate-configuration" requirePermission="false" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/>
</configSections>
完成所有操作后,我成功地将该应用程序发布到来自不同域的文件共享中,并让用户安装应用程序时没有任何问题。将这些步骤应用到我们的其他应用程序并使用我们新编译的程序集也像魅力一样。
答案 0 :(得分:5)
你需要MSBuild 4.0 ,nant构建脚本早已不复存在。
如果您有Visual Studio 2010,请打开Visual Studio 2010命令提示符,否则请确保使用.NET 4.0框架中的MSBuild。
鉴于你已经为APTCA构建了NHibernate(nant -D:-D:assembly.allow-partially-trusted-callers = true works thre)
cd Core
MSBuild buildscripts \ build.proj / p:AllowPartiallyTrustedCallers = true / P:配置= NET35释
将Castle.Core.dll从build文件夹复制到ActiveRecord \ lib \ net35
cd ActiveRecord
MSBuild buildscripts \ build.proj / p:AllowPartiallyTrustedCallers = true / p:Configuration = Release /p:FrameworkVersion=v3.5 / p:BuildConfigKey = NET35