星期一, 6月 16, 2014

在新環境執行舊版 ActiveX 元件

過去有個用 .NET Framework 2 編譯的 ActiveX 元件,一直都沒什麼問題。但現在愈來愈多用戶端是 Windows 8 或 Windows 8.1,內建就是 .NET Framework 4 以上,對於一般的元件來說,可以利用 App.config 或是 Web.config 指定 RuntimeVersion 解決,但 ActiveX 沒機會。要求使用者加裝 .NET Framework 2 是可行,只不過要費許多口舌。所以只好在 ActiveX 下載安裝的過程最後改機碼,將以下
  • ...\Software\Classes\CLSID\{...}\InprocServer32\1.2.3.4
    • RuntimeVersion=v2.0.50727
改成
  • ...\Software\Classes\CLSID\{...}\InprocServer32\1.2.3.4
    • RuntimeVersion=v4.0.30319
當然,也必須有配套判斷,在使用者環境只有 .NET Framework 4 的條件下,才做上述的修改;在 .NET Framework 2 以及 .NET Framework 4 兩者並存的條件下,就沒有必要改。

沒有留言:

張貼留言