编译Castle.ActiveRecord以允许部分信任?

Mik*_*ike 1 nhibernate castle castle-activerecord partial-trust

我如何构建Castle.Core,Castle.ActiveRecord和NHibernate以允许部分信任?网上有大量的资源显示如何做到这一点,但是我找到的每个网站都说nant build -D:assembly.allow-partially-trusted-callers=true用来构建每个程序集.当我在这里查看Castle.Core 主干时,没有*.build文件.

如何实现这一目标?我使用的是.NET 3.5.这不是Web应用程序.

编辑:我们正在使用NHibernate 2.1.2GA(我相信最新的稳定版本).下面给出的说明的问题是它们看起来像是指从trunk创建Castle.Core和Castle.ActiveRecord.Trunk似乎要求NHibernate 3.0.0与我们的版本不匹配.

几乎所有的调整都是在项目属性下的Security选项卡中完成的.

  • 在"区域您的应用程序将从以下位置安装"标签我选择"(自定义)"
  • 至于应用程序所需的权限,我必须包括SqlClientPermission以及UIPermission.为了消除未来发展的问题,我选择了"授予程序集无限制访问x",其中是所选权限.这是针对上面显示的两个权限完成的.请注意,您选择包含的权限将基于每个应用程序,并且没有两个案例将是相同的.
  • 在"高级..."按钮下,我取消选择了两个选项("使用所选权限集调试此应用程序"和"授予应用程序访问其原始站点").

此外,由于应用程序和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>
Run Code Online (Sandbox Code Playgroud)

完成所有操作后,我成功地将该应用程序发布到来自不同域的文件共享上,并让用户安装应用程序时没有任何问题.将这些步骤应用于我们的其他应用程序并使用我们新编译的程序集也像魅力一样.

roe*_*ofb 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核心

  • MSBuild buildscripts\build.proj/p:AllowPartiallyTrustedCallers = true/p:Configuration = NET35-Release

  • 将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