我正在Linux上的 Visual Studio代码上使用 ASPNET Core 2.0 开发Web应用程序。但我尝试部署应用程序的主机是Windows Server,唯一可用的目标选项是.Net Framework 4.6。
所以,当我尝试运行dotnet publish -o /folder -f net461
时,它会告诉我
this error
是否有可能在linux上开发aspnet核心应用程序并使用.Net Framework在Windows上部署它?
以下是错误的文字:
/usr/share/dotnet/sdk/2.0.0/Microsoft.Common.CurrentVersion.targets(1122,5):错误MSB3644:找不到框架“.NETFramework,Version = v4.6.1”的引用程序集。要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替引用程序集。因此,您的程序集可能无法正确定位到您想要的框架。 [/home/maransatto/Projects/FATEC/EraDoConhecimento/web/BDAg.csproj]
答案 0 :(得分:1)
有两种情况:带有.Net框架的ASP.Net Core和带有.Net Core的ASP.Net Core。您无法在Linux上使用.net框架开发asp.net核心,因此您的应用程序的目标可能是“netcoreapp2.0”(您下载了最新版本)。您可以使用.net核心运行时2.0在Windows服务器上部署应用程序。
你的命令应该是
dotnet publish -c Release -f netcoreapp2.0
您可以部署依赖于Framework或自包含的版本。见(https://docs.microsoft.com/en-us/dotnet/core/deploying/index)。
您还需要在IIS集成的Windows上使用Asp.Net核心模块。 https://docs.microsoft.com/en-us/aspnet/core/publishing/iis?tabs=aspnetcore2x
发布自包含时,您不需要在服务器上安装.net核心。