by manamana
11. 3月 2013 15:00
SharePoint 2010 は .Net Framework 4.0 ではサポートされないわけですがうまく回避出来ません。
Excel PowerShell Tool は Visual Studio 2012 の VSTO で作成していますが、
このバージョンでは Framewwok 4.0 以降しか選択出来ません。
そこで作成された dll から Runspace (≒PowerShell) を作ると、CLR 4.0 が選ばれてしまうのです...
← CLRVersion に注目!
dll.config の設定や、アウトプロセスで PowerShell を呼び出す等の技を試してみましたが、うまく行きません。
うまく行ったとしても、Framework 4.0 に加え WMF3.0 も必須になるので本末転倒です。
(※アウトプロセス起動はWMF3.0からの機能)
いろいろ考えたのですが、PS Tool を PowerShell 2.0 と 3.0 用で分けるのが良いと判断しています。
そのためには Visual Studio 2010 に再登場願わなければ…
PowerShell 3.0 は、Framework 4 + WMF3.0 が必須なのでWin7/Server 2008R2 では追加インストールとなりますが、
Win8/Server 2012 の時代だし問題ないでしょう。
それより、WMF3.0 を入れた環境で、あえて PowerShell 2.0 を使う…といった場合に問題が出そうです。
PowerShell のバージョンを選択できるメニューを追加するなりで対処できるつもりですが、そんなに需要はないでしょうww
それよりも PS Tool にコンソール機能をつけるとかをやりたいです。
追記:
ちょっと考えてみれば、PS Tool を SharePoint 2010 の環境で動かす必要は全くないですね。
Invoke-Command をリモートから投げてやればOKじゃないです...orz
SharePoint PC に開発環境を入れるのが当たり前になっていたので基本を忘れていました。
Invoke-Command の戻り値は多少癖がありますが、PowerShell のバージョン毎に PS Tool を作るより全然楽です。
22ebfbe3-0a95-4d74-b497-8ba1b6b8d28e|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04
Tags:
PowerShell | VSTO