VS Code + Develop(Linux)+ Target(.net Framework)+主机(Windows)

时间:2017-10-25 14:19:32

标签: linux asp.net-core visual-studio-code web-deployment asp.net-core-2.0

我正在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]

1 个答案:

答案 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核心。