「FileLoadException: 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」という例外が発生しています。
インターネットを検索すると、多くの人が実行時にこの例外を受け取ることがわかりましたが、VS2012 のデザイナー ビューを開始するときにこれを受け取るのは私だけのようです。
デザイナーはこのメッセージを表示するだけで、デザイナー ビューを閉じてもう一度開始すると、このメッセージは表示されず、デザイナーはダイアログ要素を表示します。しかし、xaml ビューでは、IntelliSense をサポートしていません。
私のアプリケーションは .NET Framework 4.5 に対してコンパイルされており、app.config にあります。
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/></startup>
しかし、これは役に立ちません。
これは、DirectX を使用してビデオ コントロールを表示するすべてのダイアログで発生します。ご想像のとおり、IntelliSense を使用せずに xaml で作業するのは非常にイライラします。
デザイン ビューでこの例外を取り除き、これらのダイアログ ウィンドウでインテリセンスを動作させる方法を知っている人はいますか?
参考までに、VS2010 と .NET 4.0 ではこれらの問題はありませんでした。
編集:
これは非常に大きなアプリケーションであり、小さなサンプルではこの問題を再現できないため、正確なソース コードを示すことはできません。しかし、ここにいくつかの追加情報があります:
ダイアログは次のようになります。
<Window x:Class="DesignerTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:WPFMediaKit.DirectShow.Controls;assembly=WPFMediaKit"
Title="MainWindow" Height="350" Width="525">
<DockPanel>
<ComboBox DockPanel.Dock="Bottom" x:Name="videoCapDevices"
ItemsSource="{Binding Source={x:Static Controls:MultimediaUtil.VideoInputDevices}}"
DisplayMemberPath="Name"
Foreground="Black"
FontSize="20"
VerticalAlignment="Top"
Margin="0, 30, 0,0" />
<Controls:VideoCaptureElement DesiredPixelWidth="320"
DesiredPixelHeight="240"
FPS="30"
VideoCaptureDevice="{Binding Path=SelectedItem, ElementName=videoCapDevices}"
x:Name="videoElement" Stretch="Fill" />
</DockPanel>
私はオープン ソース プロジェクトの WPFMediaKit と DirectShowLib-2008 を使用しており、x86 cpu 用にコンパイルしています。DirectShowLib、WPFMediaKit、およびメイン アプリケーションは厳密な名前で署名されています。