2012-02-22 7 views
3

実行時に組み込みアセンブリをサーバー側のDLLにロードしようとしています。私が組み込んだアセンブリは私自身のコードです。組込みアセンブリをロード

アセンブリをロードしようとすると、Unverifiable code failedポリシーチェックエラーが発生します。

これを回避する手段はありますか?

byte[] resource = null; 

    using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name)) 
    { 
     if (stream != null) 
     { 
      resource = new byte[stream.Length]; 
      stream.Read(resource, 0, (int)stream.Length); 
     } 
    } 

    AppDomain.CurrentDomain.Load(resource); 

EDIT:ここ

は、コードで暗闇の中でショットの

ビットが、私は最初にディスクにDLLを保存し、そのようにロードしようとしました。ここで私が得られるものがあります:ファイルやアセンブリ、またはそれらの独立性のいずれかを読み込めませんでした。指定されたアセンブリまたはコードベースが無効です。誰もがこのポストにつまずく場合

+1

この古い質問が見つかりました。たぶんそれはあなたのケースです: (http://stackoverflow.com/questions/2612128/unverifiable-code-failed-policy-che-a-closed-source-assembly) – Steve

+0

「安全でないプロジェクト構成で「コード」? – Steve

答えて

1

は、解決策を見つけた:あなたは、高セキュリティコンテキストでない限り

-C#はnot allowあなたはバイトからアセンブリをロードするようになります。

- ファイルに保存する権限があり、Assembly.Load(filename)(私はAppDomain.CurrentDomain.Load(filename)を使用したことがあります)を使用すると、アセンブリのロードに問題はありません。