是否可以使用 .NET Core 和 .NET Framework
Is it possible to work with .NET Core with .NET Framework
我一直在绞尽脑汁试图创建一个完全是 .NET Core 的新项目,一个可以在不同环境中运行的项目,但我需要添加很多我以前在严格的环境中工作的项目作为参考.NET 框架 (4.5)。
到目前为止,我能做的是将 .NET 461 框架添加到项目 json,
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
],
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Niloosoft.Hunter.ServicesDataAPI": {
"target": "project"
}
}
},
"net461": { }
}
它成功恢复了包,我什至设法添加了 .NET 框架引用,但我似乎无法正确使用它们,我收到此错误。
所以,我的问题是,目前是否可以使用我的 .NET Framework 引用而不用以下内容交换预期的框架(因为我想要互操作性):
> #if NET45
//specific code for .NET 4.5
> #
需要注意的一点是,.NETCoreApp 不支持我的项目,所以,恐怕我确实需要 .NET Framework,我只需要知道我正在尝试做的事情是否可行。
不,您不能 运行 仅在 .NET Core 中以 .NET 4.5 为目标的库。您只能使用以 netstandard1.x
或 netcoreapp1.x
为目标的库(以及以 dnxcore5.0
、dotnet5.x
为目标的旧库(不推荐使用 netstandard1.x
和放弃 dnx 以支持 dotnet cli)。
但是您可能能够使用PCL,它针对 .NET 4.5 和 Windows Phone 8.x 或 Windows 8.x,因为它们的 API 表面要小得多,并且只有 API 可以在两个 Windows 8 上工作.x/Windows Phone 8.x 和 .NET 4.5+(这意味着:它使用 System.Runtime
,.NET Core 基于它)。
如果您的库不是 PCL .NET 4.5+Win8 或更高版本,那么您将不得不寻找替换库并使用 #if
指令或目标 net451/net461
只有 运行 反对单声道,然后没有 .NET Core。
我一直在绞尽脑汁试图创建一个完全是 .NET Core 的新项目,一个可以在不同环境中运行的项目,但我需要添加很多我以前在严格的环境中工作的项目作为参考.NET 框架 (4.5)。
到目前为止,我能做的是将 .NET 461 框架添加到项目 json,
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
],
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Niloosoft.Hunter.ServicesDataAPI": {
"target": "project"
}
}
},
"net461": { }
}
它成功恢复了包,我什至设法添加了 .NET 框架引用,但我似乎无法正确使用它们,我收到此错误。
所以,我的问题是,目前是否可以使用我的 .NET Framework 引用而不用以下内容交换预期的框架(因为我想要互操作性):
> #if NET45
//specific code for .NET 4.5
> #
需要注意的一点是,.NETCoreApp 不支持我的项目,所以,恐怕我确实需要 .NET Framework,我只需要知道我正在尝试做的事情是否可行。
不,您不能 运行 仅在 .NET Core 中以 .NET 4.5 为目标的库。您只能使用以 netstandard1.x
或 netcoreapp1.x
为目标的库(以及以 dnxcore5.0
、dotnet5.x
为目标的旧库(不推荐使用 netstandard1.x
和放弃 dnx 以支持 dotnet cli)。
但是您可能能够使用PCL,它针对 .NET 4.5 和 Windows Phone 8.x 或 Windows 8.x,因为它们的 API 表面要小得多,并且只有 API 可以在两个 Windows 8 上工作.x/Windows Phone 8.x 和 .NET 4.5+(这意味着:它使用 System.Runtime
,.NET Core 基于它)。
如果您的库不是 PCL .NET 4.5+Win8 或更高版本,那么您将不得不寻找替换库并使用 #if
指令或目标 net451/net461
只有 运行 反对单声道,然后没有 .NET Core。