我正试图在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容器中运行我的测试**
答案 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编译代码。