[我很高兴看到.NET Core 3.1和Visual Studio 2019 add support for managed C++/CLI projects的最新预览,因为这样的项目是在.NET Framework上保留特定项目的唯一想法。
因此,我安装了Visual Studio Preview 16.4.0 Preview 4,以及“ v142 ...的C ++ / CLI支持...”选项,并且按预期,我看到了新的C ++ CLR模板并安装了.NET Core 3.1 Preview 2
我使用“ CLR类库(.NET Core)”模板创建了一个新项目,将文件复制到一个旧的托管C ++ / CLI项目中,进行了一些微调,并构建了程序集-很棒!
但是,当我尝试在.NET Core 3.1中使用程序集时,出现此致命异常:
Unhandled exception. System.BadImageFormatException: Could not load file or assembly 'MyAssembly, Version=2019.0.1.0, Culture=neutral, PublicKeyToken=null'. An attempt was made to load a program with an incorrect format.
File name: 'MyAssembly, Version=2019.0.1.0, Culture=neutral, PublicKeyToken=null'
at TestApp.Program.Main(String[] args)
两者都是托管程序集和测试应用程序目标X64。任何想法可能是什么问题?
[构建托管C ++ / CLI项目时,文件ijwhost.dll
被放置在程序集旁边的输出文件夹中-该文件需要与使用该程序集的应用一起部署。
将ijwhost.dll
放置在与应用程序相同的文件夹中,然后按预期工作。
顺便说一句,我根据.NET Core 3.1预览版构建的旧C ++ / CLI项目实际上非常复杂-我
非常令人惊讶的是它基本上“可以正常工作”!
希望将来会使用更好的错误消息!