将Win32 DLL调用到netcoreapp测试项目中

时间:2016-07-11 07:04:24

标签: c# winapi dll .net-core

我有一个“旧的”win32 dll,我需要在单元测试/集成测试项目中加载它来进行一些测试处理。

此dll简称为

  private static extern ushort SSV_InitTrace(
        [MarshalAs(UnmanagedType.LPStr)]string fileName,
        [MarshalAs(UnmanagedType.LPStr)]string mode,
        ushort module, byte level);

这是在win32平台上运行的“经典”xUnit测试项目。 但是,在我的集成测试中,我需要从我的解决方案中加载一堆netcore程序集。 我像这样定义我的project.json:

 "dependencies": {
  "xunit": "2.2.0-beta2-build3300",
  "CommonTools": "1.0.0",
  "FluentAssertions": "4.6.1",
  "SESAMEngineFacturation": "1.0.0",
  "Moq": "4.6.25-alpha",
  "DALCore": "1.0.0",
  "BusinessCore": "1.0.0",
  "dotnet-test-xunit": "2.2.0-preview2-build1029",
  "System.Reflection.Extensions": "4.0.1",
  "SESAMReglementaire": "1.0.0-*",
  "SESAMReglementaire.Tests": "1.0.0-*",
  "System.Runtime.InteropServices": "4.1.0",
  "System.Linq.Expressions": "4.1.0"
 },
"frameworks": {
  "netcoreapp1.0": {
    "dependencies": {
     "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    },
    "System.Reflection.TypeExtensions": "4.1.0",
    "System.Diagnostics.TraceSource": "4.0.0"
  },
  "imports": [
    "dnxcore50",
    "portable-net45+win81"
  ]
 }
}

当我点击我的dllimport时,遇到badImageFormatException。 如何强制我的netcoreApp在win32模式下运行? 我已经尝试设置

  "buildOptions": { "platform": "x86" }

进入netcoreapp部分,但如果我这样做,测试就不再出现在VS Test Explorer中。

我如何管理这个运行?

0 个答案:

没有答案