Вызов библиотеки управления окнами с помощью MapPoint из WPF-приложения MVVMLight на компьютере x64
MapPoint можно использовать в приложении WPF, если объект AxMapPoint включен в библиотеку элементов управления Windows.
Создание простого тестового приложения со следующим телом в MainWindows.xaml
<Grid x:Name="LayoutRoot">
<Grid Name="mapControl" Loaded="MapPointControl_Loaded"/>
</Grid>
работает при создании проекта WPF. Вызов функции CodeBehind выглядит следующим образом.
private void MapPointControl_Loaded(object sender, RoutedEventArgs e)
{
try
{
// Create the interop host control.
System.Windows.Forms.Integration.WindowsFormsHost host =
new System.Windows.Forms.Integration.WindowsFormsHost();
// mpControl = new
MapPointControl userControl = new MapPointControl();
host.Child = userControl;
// Add the interop host control to the Grid
// control's collection of child controls.
this.mapControl.Children.Add(host);
} catch { }
Это работает для проекта WPF,
Однако создание проекта MVVM не работает.
На этой линии происходит сбой
MapPointControl userControl = new MapPointControl();
Появится следующее диалоговое окно
FileNotFoundException был пойман
Не удалось загрузить файл или сборку "Interop.MapPoint, версия =1.0.0.0, культура = нейтральная, PublicKeyToken=null" или одна из ее зависимостей. Система не может найти указанный файл.
(Interop.MapPoint.dll существует в папке bin/Debug)
в Visual Studio.
1 ответ
Включите программу просмотра журнала Fusion и поделитесь результатом. Он должен сказать вам, что зависимость отсутствует.
Нажмите Пуск-> Введите "fusion" и щелкните правой кнопкой мыши на Fusion Log Viewer, чтобы запустить от имени администратора.
Нажмите Настройки-> Журнал привязки ошибок к диску.
Запустите исключение, затем нажмите "Обновить" в программе просмотра журнала.
Нажмите "Просмотр журнала" в записи, которая появляется в Fusion. Поделись результатами.