簡體   English   中英

從WPF引用.NET Core 1.0庫

[英]Reference .NET Core 1.0 library from WPF

我目前正在開發WPF中的桌面應用程序,它使用.NET Core庫來更輕松地移植到不同的平台。 但是,我似乎無法從WPF應用程序引用.NET Core庫。

我嘗試了以下解決方案:

  • 參考項目:Visual Studio抱怨項目不是.exe或.dll,即使它是。

  • 引用編譯的.dll:這真的很難看,但它起初似乎起作用。 Intellisense可以使用它,WPF項目編譯得很好。 但是,只要我想使用.NET Core項目中的任何功能,就會拋出BadImageFormatException。

  • dotnet pack項目並引用.nupkg:安裝一堆額外的包,並在使用任何功能時拋出BadImageFormatException。

從我可以收集到的有兩個選項:

  • 做一些非常討厭的事情,比如制作一個.NET Core Console項目並將所有對象作為字符串傳遞給兩個程序

要么:

  • 放棄.NET Core並使用EF6。

這是我的project.json:

{
  "version": "1.0.0-*",

  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
    "Microsoft.EntityFrameworkCore.Design": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
    },
    "dnx451": {}
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
  }
}

我嘗試了dnx451net451 WPF項目也針對.net 4.5.1。 我正在使用“Visual Studio 2015 Update 3”和“.NET Core 1.0.1 VS 2015 Tooling Preview 2”。

您的project.json對於庫不正確。 庫項目應該如下所示:

{
  "dependencies": {
      "Microsoft.EntityFrameworkCore.Sqlite": "1.0.0",
      "Microsoft.EntityFrameworkCore.Design": {
        "version": "1.0.0-preview2-final",
        "type": "build"
      }
  },
  "frameworks": {
    "net451": { },
    "netstandard1.3": {
      "dependencies": {
        "NETStandard.Library": "1.6.0"
      }
    }
  },
  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
  }
}

運行dotnet pack ,將生成兩個DLL:一個用於.NET 4.5.1,另一個用於.NET Standard 1.3(或者您要定位的任何netstandard )。 .NET 4.5.1 DLL應與您的WPF項目兼容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM