2010、2013、および 2016 の Outlook アドインを構築することができました。OL2010 vsto プロジェクトを作成し、.csproj ファイル (1*) をいじりました。問題は、2013/2016 年に追加されたタイプがほとんどなく、それらにアクセスできないことです。もちろん、それぞれのOLバージョンが使用されている場合にのみ、それらにアクセスしたい.
全体を理解している限り、Interop アセンブリはアドインと共に提供されます。したがって、理論的には、いくつかの IL コードを挿入したり、不足している型を提供する同じ名前空間を持つ追加のアセンブリを提供したりすることが可能です。これらの相互運用アセンブリは COM ラッパーのみであり、その機能は、インストールされている Outlook バージョンによって提供されるアンマネージ コードに依存しているため、正しくインポートされるとシームレスにロードされるはずです。
それは何とか実現可能ですか?これを試したり、アドインをクライアントに展開したりすると、何が問題になる可能性がありますか?
より高いバージョンの Interop Type を使用する必要があるかどうかを判断するにはどうすればよいですか?
より高い相互運用タイプをロードするにはどうすればよいですか?
既存のタイプと競合することなく使用するにはどうすればよいですか?
インテリセンスと静的型付けが欲しいので。これらの型を事前に定義し、Guid、CoClass、および TypeLibType で装飾する必要があります。それで十分でしょうか?
(1*)(ProjectName.csproj ファイルの DebugInfoExeName と OfficeVersion を変更し、対応する Outlook バージョンがインストールされている別の仮想マシンでそれぞれのインストーラーをビルドしました。もっと簡単な方法があるのではないでしょうか? -> 教えてください!..残念ながら、いくつかの理由により addin-express を使用できません。
メインスレッド以外のスレッドから使用すると例外がスローされるため、完全な OL 2016 Interop Assemblies を使用しないことをお勧めします。また、バックグラウンドで実行する必要がある同期コードもあります。
回答ありがとうございます。