mengineer's blog

ニッチなネタばかりですが。

C# .NETバージョン絡みのエラー対策

久しぶりの更新です、自分メモだけど。

最近はVisualStudio2013 Communityという環境なのですが、
旧いdllを参照設定すると、妙なエラーに遭遇。

結論から言うと、App.configを修正すればOKになりました。

修正前

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

修正後

<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true"> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
</configuration>

startupの中に、useLegacyV2RuntimeActivationPolicy="true" を追加しただけ。

下記サイトを参考にしました、感謝です。

.NetFramework 4 のみで 2.0 向けアプリケーションを動作させる - Life like a clown

C# .NETのバージョン違いにご用心 – SAKAIDEN

C# Excelに画像を貼る

C#からExcel内の関数を呼び出すのは、下記ネタでやっていました。 mengineer.hatenablog.com

今回はExcelでシートに画像を貼って保存する、というネタです。

上記ネタでは、”異なるExcelのバージョンだと動かないので注意!”
なんてことを書きましたが、今回はバージョンに関係無く動くように、
遅延バインディングという方法でExcelを呼び出しました。

続きを読む

C# MemoryMappedFilesを使ってみる

例えばアプリAからアプリBへデータを渡したい時の話。

これまでクリップボード経由で実現させていました、 こんな感じ。

1. アプリA データをクリップボードにコピー
2. アプリB ちょっとだけ待つ(200mS程度:おまじないですね)
3. アプリB クリップボードからデータを貼り付け

難点は、クリップボードってAB以外のアプリも使ってる訳なので、
想定外に思わぬところでデータが消えたり、化けてしまったり。

クリップボード以外で別の手法は無いものだろうか? ってことで、
MemoryMappedFileを使ってみたのが、今回のネタになります。

詳細は"C# MemoryMappedFiles" 等で検索してみて下さい、
今回も色々なサイトを参考にさせて頂きました、感謝。

続きを読む