Tôi có một ứng dụng WPF sử dụng điều khiển người dùng Winforms mà tôi đã tạo bằng cách sử dụng C++/CLI. Khi ứng dụng của tôi đi phân tích XAML cho cửa sổ chính của tôi, nó sẽ đưa ra một ngoại lệ. Thông tin có vẻ hơi viết tắt, nhưng nó nói:WPF ném một phân tích cú pháp XAML ngoại lệ bao gồm một điều khiển người dùng Winforms
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
Additional information: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1) Error in markup file 'OsgViewer;component/osgviewerwin.xaml' Line 1 Position 9.
Tôi nhận xét điều khiển Winforms của tôi trong XAML và mọi thứ đều tốt. Tôi nghĩ rằng có lẽ người xây dựng cho điều khiển của tôi đang làm điều gì đó xấu, vì vậy tôi đặt một điểm ngắt trong đó, nhưng điểm dừng dường như không được kích hoạt khi tôi bắt đầu chạy ứng dụng và không bao giờ bị tấn công. có chứa dòng đó không được tải. Mà rất có thể sẽ gây ra một ngoại lệ được ném khi một đối tượng của một loại trong DLL được instantiated - cơ thể của constructor của đối tượng không thể được tìm thấy.
Tôi đã làm điều này thành công trên một dự án khác trong quá khứ, vì vậy tôi đã kéo trong một WinForms User Control khác từ ứng dụng đó, và khởi tạo nó trong XAML, và tất cả đều hoạt động tốt.
Vì vậy, nó là một cái gì đó trong DLL này. Tôi có một tham chiếu đến các DLL trong ứng dụng WPF C# của tôi, và khi tôi tải các DLL trong Object Browser tất cả các lớp học bắt buộc và không gian tên hiển thị tốt. Ứng dụng biên dịch tốt, vấn đề chỉ hiển thị khi phân tích cú pháp XAML. Có ai thấy thứ như thế này không? Bất kỳ ý tưởng nào về những gì có thể gây ra điều này? Ý tưởng để gỡ lỗi nó? Cảm ơn!
<Window x:Class="OsgViewer.OsgViewerWin"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:int="clr-namespace:System.Windows.Forms.Integration;assembly=WindowsFormsIntegration"
xmlns:myns="clr-namespace:MyGlobalNS.MyNS;assembly=MyAssembly"
...
<int:WindowsFormsHost x:Name="m_Host">
<myns:CMyClass x:Name="m_MyClass" />
</int:WindowsFormsHost>
...
</window>
câu hỏi, # 1 có nên được bật hay không ??? Tôi có lỗi tương tự và nó không được kích hoạt, tôi có nên bật nó không? –
@macrian: Đã một thời gian kể từ khi tôi viết câu trả lời của mình, nhưng tôi nghĩ bạn nên bật gỡ lỗi không được quản lý. Bằng cách này, bạn sẽ thấy nhiều kết quả đầu ra hơn trong trình gỡ rối có thể giúp bạn theo dõi vấn đề. – EFrank
Tôi biết, thực sự nó đã được bốn năm: P cảm ơn mặc dù đã giúp đỡ của bạn: D –