Dll C“CLR例外情况”;BadImageFormatException:无法加载文件或程序集;
我使用的是VS2019版本16.8.2 我在“WPF应用程序(.NET)”项目中引用了一个“CLR类库(.NET核心)”项目,遇到了一个异常:Dll C“CLR例外情况”;BadImageFormatException:无法加载文件或程序集;,dll,reference,clr,ref,.net-5,Dll,Reference,Clr,Ref,.net 5,我使用的是VS2019版本16.8.2 我在“WPF应用程序(.NET)”项目中引用了一个“CLR类库(.NET核心)”项目,遇到了一个异常: BadImageFormatException: Could not load file or assembly 'LibCLR, Version=1.0.7646.21580, Culture=neutral, PublicKeyToken=null'. An attempt was made to load a program with an in
BadImageFormatException: Could not load file or assembly 'LibCLR, Version=1.0.7646.21580, Culture=neutral, PublicKeyToken=null'. An attempt was made to load a program with an incorrect format.
让我先谈谈我是怎么做到的
使用System.Windows;
命名空间TestCLR{
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口{
公共主窗口(){
初始化组件();
新LibCLR.Class1();
}
}
}
如何解决此问题?最常见的答案是在x86和x64目标之间切换。在对原始问题的评论中,您提到您尝试过,但对您无效。所以,我有一个建议。您正在构建一个WPF项目,目标是Dotnet5.0。dotnet5.0是操作系统不可知论者。WPF是特定于操作系统的。它需要窗户 尝试使用操作系统特定的目标框架名字对象。打开两个项目的.csproj文件。尝试将两个项目都设置为
net5.0-windows
清洁溶液、重建和测试
我们这里有一个依赖于Windows的解决方案。我们不应该让去做,但让我们尝试明确地瞄准它。特别是C++项目。
更多阅读
屏幕截图:“平台:[活动(Win32)]”。这将构建x86(又名32位)版本的DLL。它不能用于以64位模式运行的.NETCore项目中。改为构建x64版本。您好,我尝试了x86和x64,但都不起作用。您不能将.NET 5类库加载到.NET framework应用程序中,这就是您要做的吗?但我以“.NET 5.0”作为目标,这是错误的吗?您能共享.csproj文件吗?
#pragma once
using namespace System;
namespace LibCLR {
public ref class Class1
{
// TODO: Add your methods for this class here.
};
}
using System.Windows;
namespace TestCLR {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
new LibCLR.Class1();
}
}
}