0

Net 2.0 を使用してビルドされたサード パーティのアセンブリがあります。もちろん、net 4 でそのアセンブリを参照することはできますが、アプリを実行すると、あらゆる種類の奇妙なエラーが発生します。

したがって、別のアプリケーションドメインにロードすると問題は解決しますが、解決しません。Net 4 ランタイムを使用してまだ実行されていると思います。別のネット バージョンでアプリケーション ドメインの実行を強制する方法はありますか?

私は CreateInstanceFromAndUnwrap を使用し、プロキシを呼び出します。

助けてくれてありがとう

ジョー

4

2 に答える 2

0
  1. AppDomain を作成します。そして、新しいドメインに DomainManager:MarshalByRef オブジェクトを作成します。
  2. DomainManager Load Assembly 作成した (新しい) ドメインへ。

AppDomainSetup ads = new AppDomainSetup(); AppDomain managerAD = AppDomain.CreateDomain("AD1", null, ads);

      Assembly asm = managerAD.Load(typeof(DomainManager).Assembly.FullName);
      string typeName = typeof(DomainManager).FullName;

      DomainManager manager = (DomainManager)managerAD.CreateInstanceAndUnwrap(asm.GetName().Name,

typeName); public class DomainManager : MarshalByRefObject {

    public void GetAppDomain(string assemblyFileName)
    {
      Assembly asm2 = Assembly.LoadFrom(assemblyFileName);
      Type neededType = asm2.GetType(<paste type>);
      object instance = Activator.CreateInstance(procType);
    }
于 2013-02-08T05:12:26.883 に答える
0

supportedRuntime構成要素を使用して、AppDomain の CLR バージョンを設定できます。これを app.config に追加したくない場合は、新しい AppDomain の構築中に使用される 2 つ目の .config ファイルを追加できます。詳細については、AppDomainSetup.ConfigurationFileをご覧ください。

于 2012-10-22T12:19:33.233 に答える