再発防止ー
アンコちゃんのプラグインはCPUの種類はanyでコンパイルする必要があります。
64bitOSでアンコちゃんを起動したときは、64bitでプラグインも実行される必要があるからです。
最初からわかっていたのですが、コンパイル時にanyを指定してもなってくれないものがあるんです。・・・多分プロジェクトの作り方が間違ってるのだと思いますが・・
対策として、本体のコンパイル後に毎回コマンドで、32bit属性をけしているのですが、100%はなっていないことがわかりました。
棒読みちゃんプラグインのようによく使われるもの以外でバージョンに応じで動かなくなったとか動いたとかあったかとおもいます。
ご迷惑をおかけしていて申し訳有りませんでした。
ということで、リリース前にきちんと変換、チェックをするバッチを作ってみました。
会社ではよく作ってますが、自分用に作るのは初めてかもw
@echo off cd "D:\data\にょんにょん\Visual Studio 2010\Projects\nicoView2\nicoView2\bin\x64\Debug\plugins" d: SET RESULT= SET DLLS=ActiveOnlineCounter.dll ankoAlert.dll ankoBouyomiChan.dll ankoRequester.dll ankoShidan.dll ankoTwitter.dll autoConnecter.dll autoResponse.dll daretokuCounter.dll miniBrowser.dll mjyoyaku.dll nyuTaiPlugin.dll pluginTest.dll questionnaire.dll sukebetuWindow.dll winamplayPlugin.dll YukkuriWeb.dll FOR %%A IN (%DLLS%) do ( for /F "skip=8 tokens=1,2,3 " %%i in ('"C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\CorFlags.exe" %%A') do ( IF /%%i/==/32BIT/ ( IF /%%k/==/0/ ( echo %%A OK rem テスト用 rem "C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\CorFlags.exe" %%A /32BIT+ /nologo ) ELSE ( set RESULT=NG echo %%A NGです。変換がんばります "C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\CorFlags.exe" %%A /32BIT- /nologo ) ) ) ) if /%RESULT%/==/NG/ ( echo もういちどチェックします ) else ( echo 問題有りませんでした goto FIN ) SET RESULT= FOR %%A IN (%DLLS%) do ( for /F "skip=8 tokens=1,2,3 " %%i in ('"C:\Program Files\Microsoft.NET\SDK\v2.0\Bin\CorFlags.exe" %%A') do ( IF /%%i/==/32BIT/ ( IF /%%k/==/0/ ( echo %%A OK ) ELSE ( set RESULT=NG echo %%A NG ) ) ) ) if /%RESULT%/==/NG/ ( echo だめです ) else ( echo 全部変換出来ました ) :FIN SET RESULT= pause
dosプロンプト便利です。
ちなみに実行結果
D:\data\にょんにょん\Visual Studio 2010\Projects\nicoView2\nicoView2\bin\x64\Debug\plugins>chck.bat ActiveOnlineCounter.dll NGです。変換がんばります ankoAlert.dll OK ankoBouyomiChan.dll NGです。変換がんばります ankoRequester.dll NGです。変換がんばります ankoShidan.dll OK ankoTwitter.dll NGです。変換がんばります autoConnecter.dll NGです。変換がんばります autoResponse.dll NGです。変換がんばります daretokuCounter.dll NGです。変換がんばります miniBrowser.dll NGです。変換がんばります mjyoyaku.dll NGです。変換がんばります pluginTest.dll OK questionnaire.dll OK sukebetuWindow.dll NGです。変換がんばります winamplayPlugin.dll NGです。変換がんばります YukkuriWeb.dll NGです。変換がんばります もういちどチェックします ActiveOnlineCounter.dll OK ankoAlert.dll OK ankoBouyomiChan.dll OK ankoRequester.dll OK ankoShidan.dll OK ankoTwitter.dll OK autoConnecter.dll OK autoResponse.dll OK daretokuCounter.dll OK miniBrowser.dll OK mjyoyaku.dll OK pluginTest.dll OK questionnaire.dll OK YukkuriWeb.dll OK 全部変換出来ました