2

私は大きなプロプライエタリ プラットフォームである DocsVision の拡張機能を作成しました。このプラットフォームは .NET 3.5 SP1 を使用して動作しますが、私は .NET 4 を使用して拡張機能を作成しました (なぜだと思いますか?)

その後、DocsVision が Internet Explorer をホストとして使用したとき、.NET 4 のランタイムをサポートするために、スタートアップ タグを含む .config ファイルが IE のディレクトリに追加され、すべて正常に動作しました。

しかし、現在、新しいバージョンでは、独自の .config ファイルを含む新しいホスト Navigator.exe があります。

Navigator.exe.config

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
  <configSections>
   <sectionGroup name="docsvision.platform.wpf.navigator" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
    <section name="navigator" type="DocsVision.Platform.Wpf.Navigator.Configuration.NavigatorConfigurationSection, DocsVision.Platform.Wpf.Navigator, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7148afe997f90519"  allowExeDefinition="MachineToLocalUser" />
   </sectionGroup>
  </configSections>
  <docsvision.platform.wpf.navigator>
   <navigator>
    <connection />
   </navigator>
  </docsvision.platform.wpf.navigator>
  <runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <!-- Probing path is used for fast loading of ngen assembly images -->
    <probing privatePath="Components;SystemCards;BaseObjects;Workflow;TakeOffice" />
   </assemblyBinding>
  </runtime>
 </configuration>

user.config

<?xml version="1.0" encoding="utf-8"?>
 <configuration>
  <docsvision.platform.wpf.navigator>
   <navigator>
    <connection DisableVersionMismatchNotification="false" LangName="" />
    <view ShowArchivedItems="false" ShowColorLabels="true" ShowDeletedItems="false"
            ShowNavigationPane="true" ShowPreviewPane="false" ShowStatusBar="true" />
   </navigator>
  </docsvision.platform.wpf.navigator>
 </configuration>

したがって、混合モードのため、.dll .NET 4 を読み込めません。Navigator.exe.config に追加すると、古典的な行に従います。

<startup useLegacyV2RuntimeActivationPolicy="true">
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

私の .dll は正しく読み込まれ、すべての拡張機能が動作しますが、GUI に問題があり、プラットフォームの他の部分で (他の DLL の読み込み時に) 例外が発生します。

私が間違っていることと、プラットフォームのバグなしで拡張機能を使用するにはどうすればよいですか?

PS私のDLLは最初にCOMを使用してロードするので、これがあります: すべての DLL を含む Navigator.exe

したがって、アプリケーションには 2 つのドメインがあります。しかし、自分の拡張機能で簡単なアクションを実行しようとすると、.NET 4 dll の読み込みエラーが発生します。どうして???

4

0 に答える 0