1

Castle.Core、Castle.ActiveRecord、NHibernateを構築して、部分的な信頼を可能にするにはどうすればよいですか?これを行う方法を示すリソースはWeb上にたくさんありますが、私が見つけたすべてのサイトは、nant build -D:assembly.allow-partially-trusted-callers=true各アセンブリの構築に使用すると言っています。ここでCastle.Coreトランクを見ると、 *。buildファイルはありません。

これはどのように達成できますか?.NET3.5を使用しています。これはWebアプリケーションではありません。

編集:NHibernate 2.1.2GA(最新の安定バージョンだと思います)を使用しています。以下の手順の問題は、トランクからCastle.CoreとCastle.ActiveRecordを構築することを参照しているように見えることです。トランクは、バージョンと一致しないNHibernate3.0.0を必要としているようです。

解決

私の微調整のほとんどすべては、プロジェクトのプロパティの下にある[セキュリティ]タブで行われました。

  • 「アプリケーションのインストール元のゾーン:」ラベルの下で「(カスタム)」を選択しました
  • アプリケーションに必要なアクセス許可については、UIPermissionだけでなくSqlClientPermissionも含める必要がありました。将来の開発のために問題を否定するために、私は「アセンブリにxへの無制限のアクセスを許可する」を選択しました。ここで、は選択された権限です。これは、上記の両方の権限に対して行われました。含めることを選択した権限はアプリケーションごとにあり、2つのケースが同じになることはないことに注意してください。
  • [詳細...]ボタンの下で、両方のオプションの選択を解除しました([選択したアクセス許可セットでこのアプリケーションをデバッグする]と[アプリケーションにその元のサイトへのアクセスを許可する])。

また、アプリケーションとSQL Serverは異なるドメインに存在するため、データベースサーバードメインを含めるように接続文字列を設定する必要がありました。したがって、元の接続文字列データソースは「DataSource=DB_SERVER」から「DataSource=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>

すべてが言われ、実行された後、私はこのアプリケーションを別のドメインからのファイル共有に正常に公開し、ユーザーに問題なくアプリケーションをインストールさせることができました。これらの手順を他のアプリケーションに適用し、新しくコンパイルされたアセンブリを使用することも魅力のように機能しました。

4

1 に答える 1

5

MSBuild 4.0が必要になりますが、nantビルドスクリプトはずっと前から存在していません。

Visual Studio 2010を使用している場合は、Visual Studio 2010コマンドプロンプトを開きます。それ以外の場合は、.NET4.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-リリース

  • Castle.Core.dllをビルドフォルダーからActiveRecord\lib\net35にコピーします

  • cd ActiveRecord

  • MSBuild buildscripts \ build.proj / p:AllowPartiallyTrustedCallers = true / p:Configuration = Release /p:FrameworkVersion=v3.5 / p:BuildConfigKey = NET35

于 2010-11-11T08:18:45.823 に答える