C# 使用 DirectX DirectSound注意

專案中有一個 VolumeMeter的元件,是透過 DirectSound取得麥克風的音量輸入,然後用一個不錯的ProgressBar顯示出來。

最近把專案升級到 .Net 4了,突然跳出下面的錯誤

Mixed mode assembly is built against version 'v1.1.4322' of the runtime and cannot be loaded in the 4.0 runtime without additional configuration information.

一開始還以為是 ProgressBar那個元件太舊,於是順便找了一個新的漂亮點的。

結果是Microsoft.DirectX.DirectSound.dll 太舊,透過 VS 的方案總管看Reference,然後屬性視窗裡面的Runtime Version:v1.1.4322。糟的是我還找不到有新版本的 DirectSound.dll,2010 June版 DirectX SDK 也沒有~

最終解法:

只好直接在app.config裡面加上

<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0"/>
  </startup>

這個在用 sqlite.net 時也都會用到,順便提醒一下,千萬不要用 Sqlite.Net 4的,他的 VS Server Plugin有問題Orz

留言

這個網誌中的熱門文章

好貴的東元冷氣維修--馬達啟動電容

台大醫院 婁培人 耳鼻喉科 就診

機車無法充電之整流器壞掉--$650