在Linux核心

时间:2016-06-27 19:06:54

标签: c# asp.net .net linux containers

我正试图在Linux上移植/运行在.NET 4.5下编写的应用程序。

首先,我绝不是.NET程序员。我们有工作的软件开发人员处理这个问题,但他们甚至不愿意调查让代码在Linux上运行的可能性。因此,我试图看看我是否至少可以让应用程序编译并运行,希望它能引起他们进一步研究它。

因此,我在我的机器上安装了.NET核心实用程序,并创建了一个简单的Hello World应用程序(dotnet new)。这能够在.NET Core 1.0框架下运行(我的理解是.NET 5.0)。

由于我们的代码是针对.NET 4.5,我将project.json更新为以下

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },
  "dependencies": {
    "System.Reflection": "4.0.0"
  },
  "frameworks": {
    "net451": {}
  }
}

当我尝试编译/运行时,我得到以下内容:

Project hwapp (.NETFramework,Version=v4.5.1) will be compiled because expected outputs are missing
Compiling hwapp for .NETFramework,Version=v4.5.1
/Users/ceronim/tmp/hwapp/project.json(10,16): error DOTNET1011: Framework not installed: .NETFramework,Version=v4.5.1 in 

Compilation failed.
    0 Warning(s)
    1 Error(s)

Time elapsed 00:00:00.0231976

所以它正确地尝试在Framework 4.5.1下运行,但没有安装Framework的错误。这就是我被困住的地方,我们无法弄清楚如何安装4.5.1框架。我想把它设置在project.json中会导致它在运行dotnet restore时下载并安装。

任何帮助都将不胜感激。

**作为FYI我在Docker容器中运行我的测试**

2 个答案:

答案 0 :(得分:1)

您无法在Linux上安装和运行.NET 4.5。 (它只运行.NET Core,称为5.0,现在称为1.0)。

您需要Windows计算机(或VM)才能运行4.x.

答案 1 :(得分:1)

http://developers.redhat.com/blog/author/donschenck/

遵循本指南非常有用,实际上解释了我的问题。

正如Rick所说,4.5仅在Windows上运行。因此,您需要确保为.NET核心1.0编译代码。