找不到与某些项目的目标运行时之一兼容的框架 .NETCoreApp=v1 的运行时目标
Can not find runtime target for framework .NETCoreApp=v1 compatible with one of the target runtimes for some projects
我有许多 .NET Core 项目的解决方案。我对所有项目进行了 NuGet 更新,现在当我尝试构建时出现以下错误(对于某些项目 - 不是全部):
Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible causes:
1. The project has not been restored or restore failed - run `dotnet restore`
2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section.
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.
我在这里找到的 post 似乎有所帮助
我将以下内容添加到失败的项目中:
"runtimes": {
"win10-x64": { }
}
这似乎解决了问题。但我的问题是,为什么这只发生在某些项目上?未发出错误的项目在其 project.json
文件中没有这样的 运行time 定义。
这个运行时间定义到底是什么意思?它如何影响我 运行 在其他 os 上的能力,例如 linux 或 mac?
What exactly does this runtime definition means?
runtimes
列出了我们的包支持的运行时。 独立部署需要列出运行时。当部署有自己的运行时时,它是自包含的。
我们如何知道我们的部署是否独立? dependencies
列出我们的包所依赖的包。这些依赖关系分为三种类型。
build
该包仅用于构建,不是部署的一部分
platform
软件包将依赖于预安装的运行时
default
两者都不是
如果我们的"Microsoft.NETCore.App"
依赖是default
类型的,那么它是自包含的,我们需要自带运行时。如果它是 platform
类型,那么它是依赖于框架的。
why was this happening only on some projects?
它只会发生在独立部署的项目中。如果您查看那些不需要 runtimes
属性 的项目,您会发现它们要么是 class 库,要么依赖于框架。
独立部署
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0"
}
}
}
},
"runtimes": {
"win10-x64": {},
"osx.10.10-x64": {}
}
依赖于框架的部署
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
class图书馆
"frameworks": {
"netstandard1.6": {}
}
how does it affect my ability to run on other os like linux or mac?
没有。 Windows、Mac、OS 和 Linux 都可以预装运行时或让应用程序自带运行时。
另见
我有许多 .NET Core 项目的解决方案。我对所有项目进行了 NuGet 更新,现在当我尝试构建时出现以下错误(对于某些项目 - 不是全部):
Can not find runtime target for framework '.NETCoreApp,Version=v1.0' compatible with one of the target runtimes: 'win10-x64, win81-x64, win8-x64, win7-x64'. Possible causes:
1. The project has not been restored or restore failed - run `dotnet restore`
2. The project does not list one of 'win10-x64, win81-x64, win8-x64, win7-x64' in the 'runtimes' section.
3. You may be trying to publish a library, which is not supported. Use `dotnet pack` to distribute libraries.
我在这里找到的 post 似乎有所帮助
我将以下内容添加到失败的项目中:
"runtimes": {
"win10-x64": { }
}
这似乎解决了问题。但我的问题是,为什么这只发生在某些项目上?未发出错误的项目在其 project.json
文件中没有这样的 运行time 定义。
这个运行时间定义到底是什么意思?它如何影响我 运行 在其他 os 上的能力,例如 linux 或 mac?
What exactly does this runtime definition means?
runtimes
列出了我们的包支持的运行时。 独立部署需要列出运行时。当部署有自己的运行时时,它是自包含的。
我们如何知道我们的部署是否独立? dependencies
列出我们的包所依赖的包。这些依赖关系分为三种类型。
build
该包仅用于构建,不是部署的一部分platform
软件包将依赖于预安装的运行时default
两者都不是
如果我们的"Microsoft.NETCore.App"
依赖是default
类型的,那么它是自包含的,我们需要自带运行时。如果它是 platform
类型,那么它是依赖于框架的。
why was this happening only on some projects?
它只会发生在独立部署的项目中。如果您查看那些不需要 runtimes
属性 的项目,您会发现它们要么是 class 库,要么依赖于框架。
独立部署
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0"
}
}
}
},
"runtimes": {
"win10-x64": {},
"osx.10.10-x64": {}
}
依赖于框架的部署
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0"
}
}
}
}
class图书馆
"frameworks": {
"netstandard1.6": {}
}
how does it affect my ability to run on other os like linux or mac?
没有。 Windows、Mac、OS 和 Linux 都可以预装运行时或让应用程序自带运行时。
另见