Bar

WLW C#でプラグインを開発するときは.Net Frameworkのバージョンに気をつけましょう

Windows Live Writer(WLW)のプラグインを作ってみようと思い、現在C#で開発を行なっています。

実際にDLLを作成しWLWにロードさせてみましたが全く認識しない・・・

原因はビルドするときの.Net Frameworkのバージョンによるものでしたのでメモしておきます。

同じ事をしようと思っている人は是非設定を変更してくださいね。

.Net Framework v4でビルド→WLWは認識しません

Visual C# 2010 Expressのデフォルト設定では対象のフレームワーク欄は.Net Framework v4になっています。

デフォルト設定でビルドするとDLLは出来ますが、WLWでは全く認識しません。

WLWが認識したバージョンは2.0、3.0、3.5

数日原因が分からず右往左往してましたが、マシンのセットアップするときに.Net Framework 3.5は下位互換(2.0/3.0)だったことををふと思い出しました。

試しに対象のフレームワーク欄を.Net Framework 2.0に変更しテストプログラムをビルド、WLWでロードしたところプラグインが動作しました。

image

なお、.Net Framework 3.0と3.5でビルドしてもプラグインは認識します。

image

.Net Framework 3.5 Client Profileはビルド時にエラー

.Net Framework 3.5 Client Profileはビルドする時に下記のエラーでダメ。

image

改めて.Net Frameworkのバージョンを勉強してみる

@ITさんの.NET Frameworkのバージョンを整理するという記事をみて改めて勉強してみました。

下記画像を見れば書くバージョンの互換性がひと目でわかりますね。

.Net Framework 2.0でビルドすると2.0/3.0/3.5の環境で動作、

.Net Framework 3.0でビルドすると3.0/3.5の環境で動作するようです。

image

プラグインは.Net Framework 2.0を選択すべし?

海外サイト記事How to create a Windows Live writer plugin using C# Part 1にもしっかり書かれていますね。

you are selecting the target framework as .Net 2.0, otherwise it may not works.
image

今度から開発は.Net Framework2.0に固定して行いたいと思います。

いや~久しぶりにハマったな・・・