无法发布 .NET Core 应用程序(运行时不受支持)
Unable to publish .NET Core app (unsupported runtime)
我正在使用 .net 核心构建一个 API,并且我刚刚 运行 在发布期间解决了这个问题:
The project being published does not support the runtime 'dnx-clr-win-x86.1.0.0-rc2-20221'
我看到了 this github issue as well as this one 但我离解决方案还差得很远。这是我的 更新 project.json
文件:
{
"compilationOptions": {
"debugType": "portable",
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"dependencies": {
"AspNet.Security.OAuth.Validation": "1.0.0-alpha1-*",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Hosting": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-*",
"Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-*",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-*",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-*",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-*",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-*",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-*",
"OpenIddict.Core": "1.0.0-*",
"OpenIddict.EF": "1.0.0-*"
},
"frameworks": {
"net451": {
"frameworkAssemblies": {
"System.ComponentModel": { "type": "build" }
}
},
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-*"
}
},
"imports": [
"dnxcore50",
"portable-net451+win8"
]
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-rc2-*",
"imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
我在某处读到这可能是由于我的依赖关系的组织?
更新
这是我在使用 dotnet restore
:
时遇到的错误
Errors in c:\Users\Dude\Documents\my-api-v1\src\MyApi\obj0296a3-1ddd-4410-9e77-9510cd667f39\bin\project.json
Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-rc2-20832 is not compatible with DNXCore,Version=v5.0.
Some packages are not compatible with DNXCore,Version=v5.0.
Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-rc2-20832 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64).
您引用的 ASP.NET 核心 RC2 包与 VS RC1 工具不兼容,因为它们都依赖于完全不同的堆栈(DNX 与 .NET CLI)。
相反,您应该考虑使用 dotnet publish
。
我建议更新您的 project.json
文件以删除过时的 commands
部分并包含缺失的 tools
/scripts
:
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-rc2-*",
"imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
}
netstandardapp1.5
也应替换为新的 netcoreapp1.0
TFM,并应在 netcoreapp1.0/dependencies
下添加以下依赖项:
"Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-*" }
您可以查看 https://github.com/openiddict/openiddict-core/blob/dev/samples/Mvc.Server/project.json 的工作示例。
我正在使用 .net 核心构建一个 API,并且我刚刚 运行 在发布期间解决了这个问题:
The project being published does not support the runtime 'dnx-clr-win-x86.1.0.0-rc2-20221'
我看到了 this github issue as well as this one 但我离解决方案还差得很远。这是我的 更新 project.json
文件:
{
"compilationOptions": {
"debugType": "portable",
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"dependencies": {
"AspNet.Security.OAuth.Validation": "1.0.0-alpha1-*",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Authentication.JwtBearer": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Diagnostics": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Hosting": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0-rc2-*",
"Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-*",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-*",
"Microsoft.AspNetCore.StaticFiles": "1.0.0-rc2-*",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.0-rc2-*",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-*",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-*",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-*",
"OpenIddict.Core": "1.0.0-*",
"OpenIddict.EF": "1.0.0-*"
},
"frameworks": {
"net451": {
"frameworkAssemblies": {
"System.ComponentModel": { "type": "build" }
}
},
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.0-rc2-*"
}
},
"imports": [
"dnxcore50",
"portable-net451+win8"
]
}
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-rc2-*",
"imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
},
"exclude": [
"wwwroot",
"node_modules"
],
"publishExclude": [
"**.user",
"**.vspscc"
]
}
我在某处读到这可能是由于我的依赖关系的组织?
更新
这是我在使用 dotnet restore
:
Errors in c:\Users\Dude\Documents\my-api-v1\src\MyApi\obj0296a3-1ddd-4410-9e77-9510cd667f39\bin\project.json
Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-rc2-20832 is not compatible with DNXCore,Version=v5.0.
Some packages are not compatible with DNXCore,Version=v5.0.
Microsoft.AspNetCore.Server.IISIntegration.Tools 1.0.0-rc2-20832 is not compatible with DNXCore,Version=v5.0 (win7-x64).
Some packages are not compatible with DNXCore,Version=v5.0 (win7-x64).
您引用的 ASP.NET 核心 RC2 包与 VS RC1 工具不兼容,因为它们都依赖于完全不同的堆栈(DNX 与 .NET CLI)。
相反,您应该考虑使用 dotnet publish
。
我建议更新您的 project.json
文件以删除过时的 commands
部分并包含缺失的 tools
/scripts
:
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-rc2-*",
"imports": "portable-net45+wp80+win8+wpa81+dnxcore50"
}
},
"scripts": {
"postpublish": "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
}
netstandardapp1.5
也应替换为新的 netcoreapp1.0
TFM,并应在 netcoreapp1.0/dependencies
下添加以下依赖项:
"Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-*" }
您可以查看 https://github.com/openiddict/openiddict-core/blob/dev/samples/Mvc.Server/project.json 的工作示例。