asp.net-core - ASP.NET Core 1.0.1 破坏项目

标签 asp.net-core

如果我使用 Visual Studio 2015 Update 3 创建一个新的 ASP.NET Core MVC 应用程序,它运行得很好。但是,如果我采用上述应用程序并将其 Nuget 包更新为 ASP.NET Core 1.0.1,则会出现以下构建错误:

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 cause
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.

这是错误还是环境问题?

附录:

还原日志看起来不错:

log  : Restoring packages for <path to project>\project.json...
log  : Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' in E:\Software Projects\subq\src\SubQ.API\project.json...
log  : Lock file has not changed. Skipping lock file write. Path: <path to project>\project.lock.json
log  : <path to project>\project.json
log  : Restore completed in 6210ms.

project.json 看起来像这样:

{
    "dependencies": {
        "Microsoft.AspNetCore.Mvc": "1.0.1",
        "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
        "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
        "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0",
        "Microsoft.Extensions.Configuration.Json": "1.0.0",
        "Microsoft.Extensions.Logging": "1.0.0",
        "Microsoft.Extensions.Logging.Console": "1.0.0",
        "Microsoft.Extensions.Logging.Debug": "1.0.0",
        "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
        "Microsoft.NETCore.App": "1.0.1"
    },

    "tools": {
        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
    },

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

    "buildOptions": {
        "emitEntryPoint": true,
        "preserveCompilationContext": true
    },

    "runtimeOptions": {
        "configProperties": {
            "System.GC.Server": true
        }
    },

    "publishOptions": {
        "include": [
            "wwwroot",
            "Views",
            "Areas/**/Views",
            "appsettings.json",
            "web.config"
        ]
    },

    "scripts": {
        "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
    }
}

已安装最新的 SDK。

最佳答案

根据 https://github.com/dotnet/core/issues/267 : 使用 nuget 更新时,“type”:“platform”被删除,这有效地将项目更改为独立项目,从而强制要求运行时部分。

对我来说,手动添加 "type": "platform"到 project.json 文件解决了这个问题。

    "dependencies": {
       "Microsoft.NETCore.App": {
          "version": "1.0.1",
          "type": "platform"
        },

还有协调 https://github.com/dotnet/core/issues/267 : 通过 NuGet UI 更新调用项目系统以更新 project.json,“类型”:“平台”在该编辑期间被删除。 NuGet 3.5.0 RTM(尚未发布)将针对此问题提供解决方法。

关于asp.net-core - ASP.NET Core 1.0.1 破坏项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39735634/

相关文章:

docker - 在负载下微服务之间的 http 调用的时间差异

http - ASP Core API - 自定义未经授权的正文

c# - 通过代理从 Azure Functions 连接到 REST API(c#)

asp.net - 如何找到asp.net核心版本

asp.net - Kestrel HTTPS POST 在生产时导致 400 错误请求状态代码 (ASP.NET Core 2.x)

asp.net-web-api - 如何使用 IdentityServer4 访问我当前的用户?

azure - NET Core应用程序无法访问Azure Key Vault

c# - .NET 框架中是否有任何内置的依赖注入(inject)容器

c# - 如何使用 .NET 6 最小 API 将 wwwroot 目录下的文件路径作为 URL 返回?

asp.net-core - 在容器的核心控制台应用程序中获取ASPNETCORE_ENVIRONMENT