gpt4 book ai didi

c# - 从 WPF 引用 .NET Core 1.0 库

转载 作者:太空狗 更新时间:2023-10-29 20:29:58 25 4
gpt4 key购买 nike

我目前正在 WPF 中开发桌面应用程序,它使用 .NET Core 库来更轻松地移植到不同的平台。但是,我似乎无法从 WPF 应用程序引用 .NET Core 库。

我尝试了以下解决方案:

  • 引用项目:Visual Studio 提示该项目不是 .exe 或 .dll,即使它是。

  • 引用已编译的 .dll:这真的很难看,但一开始似乎可以工作。 Intellisense 没问题,WPF 项目编译得很好。但是,只要我想使用 .NET Core 项目中的任何功能,就会抛出 BadImageFormatException。

  • dotnet pack 项目并引用 .nupkg:安装一堆附加包并在使用任何功能时抛出 BadImageFormatException。

据我所知,这里有两个选项:

  • 做一些非常 hacky 的事情,比如制作一个 .NET Core 控制台项目并在两个程序之间将所有对象作为字符串传递

或者:

  • 只需放弃 .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 项目兼容。

关于c# - 从 WPF 引用 .NET Core 1.0 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40961819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com