gpt4 book ai didi

.net-core-rc1 - 为什么 .NetCore 类库引用 .NetStandard?

转载 作者:行者123 更新时间:2023-12-04 05:30:31 24 4
gpt4 key购买 nike

在 VS2015 > New Project > .Net Core 中,有一个“Class Library (.NET Core)”的模板

直到我尝试在 .NET Core Web API 程序中引用这个库,我才意识到类库模板正在引用 .NETStandard v1.6。而我的 .NET Core API 项目不会将其作为引用。我试图避免将库构建为 nuget 包。

关于为什么核心模板不引用核心的任何想法?关于快速解决方法的任何想法?

更新:打开一个新的“类库(.NET Core)”,在第一次构建之前我将 project.json 中的框架更改为

“netcoreapp1.0”:{
“进口”:[
"dotnet5.6",
《便携-net45+win8》
]

然后我在不同的 VS 实例中创建了一个新的“ASP.NET Core Web 应用程序 (.NET Core)”。

我尝试为新类库添加对 .dll 文件的引用,现在在 netcoreapp1.0 文件夹中,但我仍然遇到相同的错误:

.NET Core Projects only support referencing .NET framework assemblies in this release.

最佳答案

如何解决您的问题

I was trying to avoid building the library as a nuget package.

Any ideas on why a Core template isn't referencing core? Any ideas on quick workarounds?

当您尝试添加 .dll 作为 API 的引用时,您的错误消息应该在某处说明您需要创建一个包才能使用该类库。据描述in the documentation .

但是,如果您不想打扰打包,例如,如果您的类库现在仅在您的 API 项目中使用,最简单的方法是将您的类库构建为 API 所在的解决方案的项目.为此,请将您的代码复制粘贴到解决方案文件夹中,并将其作为项目包含在内。

关于版本和框架的一些说明

Core 模板(我猜你在谈论 .NET Core API)应该创建一个 project.json

  "frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
}

让我们看看这些行负责什么:

    frameworks 下的
  • netcoreapp1.0 表示您的 API 以框架 .NET Core 1.0 为目标。该版本的 .NET Core 框架实现了 .NET Standard 1.6 ( the list here ) 好东西:您的类库也使用此 .NET Standard 1.6。了解您的类库正在使用的 .NET Standard 1.6 后,您就可以选择在以后开发 Web 应用程序/移动应用程序/Windows 软件时可以使用的 .NET Core/Xamarin/.NET Framework 版本
  • imports 列出您的应用程序可以使用的其他框架/包版本
  • 根据 this link dotnet5.6portable-net45+win8 已弃用,应使用 netstandard 版本。 dotnet5.6 对我来说还是很神秘。 portable-net45+win8等同于netstandard1.0。如果允许,则意味着您的应用程序可以使用使用 .NET Standard 1.0 的包。这可能是个问题,因为 .NET Core 1.0 从 .NET Standard 1.6 开始,所以我实际上会删除这两行。

话虽如此,我非常欢迎发表评论!

关于.net-core-rc1 - 为什么 .NetCore 类库引用 .NetStandard?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42425700/

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