布団が俺を呼んでいる

丘山大一のぶろぐ

.Net Core で GetObject したいのですが

どうすればいいざんしょ?


経緯

.Net Core がWPF 対応したことだし、手元の古いアプリの移行可能性を検討しようと思い立つ。
で、そのアプリはサードパーティのComライブラリを呼び出している。
で、既存の動きに合わせてMicrosoft.VisualBasic.Interation からGetObjectを呼び出そうとしたら……あれ、無い?
ドキュメントにあたると、たしかに.Net Core の記述がない。


調査する

でがらし会で情報を持っている人募集。で、この人https://twitter.com/kowillmから情報がくる。

実装自体は進んでいるような感じ。
ただ、Not Tested ともある通り、完成していない感じはある。

実装もある程度進んでいる雰囲気はある。

しかし手元の.Net Framework の dllの中身と比較すると実装が異なる、というか足りない感じ。
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.VisualBasic.dll


さてどうしよう

VisualBasic.dll の実装自体は(こう言ってはなんですが)意外と活発に見えます。
しかし最新のパッケージが2018/12/3と一年以上前であり、リリースできる状態までこぎつけていないのか、あるいはリリースを一時中断する理由があるのか判別がつかない。
というのも、ない理由が「仕掛りなだけ」ならいいのですが、「他のdllにメソッドを移植した」「.Net Core では別実装を検討中」「問題が見つかった」「.Net Coreで実装すべき機能ではない」などの理由だと(検証的に)困っちゃうんですよね。
.Net Core へのVB関連の取り組みがあまりされていない感じもあり、またWinFormに依存する部分は含めない的な方針もあるようで……Windowsのための実装のcom系に使われる機能はどういう取り扱いになるのか不透明&不透明。
Marshal.GetActiveObject がないから、というのも理由の一つな気もしますが。

無ければ作ればいいじゃないの精神で、必要な部分だけ引っこ抜いて個別実装してもいいのですが、「まだ無い」理由が分からないと徒労に終わる可能性も高いので、なかなか踏ん切りがつきません。
該当部分は.Net Frameworkで作れ! が正しいとも考えられますし。

どういう状況なんでしょ。

コメントを書く