Linux dotnet命令不使用';找不到新安装的.NET Core 2.1
我正在尝试在Debian 9服务器上托管ASP.NET核心应用程序。我以前安装过.NETCore1,并且一直在尝试安装.NET2.1的运行时/主机 对于我的发行版,我遵循了Linux dotnet命令不使用';找不到新安装的.NET Core 2.1,linux,asp.net-core,.net-core,Linux,Asp.net Core,.net Core,我正在尝试在Debian 9服务器上托管ASP.NET核心应用程序。我以前安装过.NETCore1,并且一直在尝试安装.NET2.1的运行时/主机 对于我的发行版,我遵循了dotnet--version命令输出1.0.1和dotnet--info输出 .NET Command Line Tools (1.0.1) Product Information: Version: 1.0.1 Commit SHA-1 hash: 005db40cd1 Runtime En
dotnet--version
命令输出1.0.1和dotnet--info
输出
.NET Command Line Tools (1.0.1)
Product Information:
Version: 1.0.1
Commit SHA-1 hash: 005db40cd1
Runtime Environment:
OS Name: debian
OS Version: 9
OS Platform: Linux
RID: debian.8-x64
Base Path: /opt/dotnet/sdk/1.0.1
我必须做什么才能找到运行时
评论中问题的答案:
$ which dotnet
/usr/local/bin/dotnet
$dotnet
/usr/local/bin/dotnet
dpkg-L的产量相当长,但我认为这给了我问题的原因。2.1运行时的文件都在
/usr/share/dotnet
下,而不是/opt/dotnet
下。运行dotnet
使用/usr/local/bin
中的一个查看旧运行时,但看起来有一个/usr/bin/dotnet
查看新版本。。。我按照Microsoft的说明进行了两次安装,所以我不知道为什么会有这么大的不同。当您在命令行上输入dotnet
时,shell会在$PATH
中查找它。您似乎安装了两个dotnet
命令,一个位于/usr/local/bin/dotnet
,另一个位于/usr/bin/dotnet
/usr/local/bin/
首先出现在$PATH
中,因此当您键入dotnet
时,shell将运行/usr/local/bin/dotnet
我怀疑/usr/local/bin/dotnet
是指向/opt/dotnet/dotnet
的符号链接。其中一个包含2个.NET核心运行时版本(如dotnet--info
所示):1.0.4和1.1.1。这听起来像是用户手动安装的,可能是从发布tarball中提取到/opt/dotnet
(这些版本非常过时。它们还包含已知的安全漏洞)
/usr/share/dotnet/
由dotnet-*
和aspnetcore*
软件包通过apt
安装。其中包含verison 2.1软件包
您有几个选项可以解决此问题:
/usr/local/bin/dotnet
(dpkg--search/usr/local/bin/dotnet
不列出包),那么您可以简单地rm
它。然后,dotnet
将意味着/usr/share/dotnet/dotnet
。您还可以删除/opt/dotnet
/usr/local/bin/dotnet
,请在dpkg--search
输出中查找包的名称并删除该包.bashrc
(或等效的shell配置文件)中重写$PATH
。添加一行,如导出路径=/usr/bin:/usr/local/bin:/bin:/usr/game我不知道为什么这两个程序安装在不同的位置和不同的可执行文件。在您安装的版本发布后,安装说明可能已更改,软件包也已可用?您如何创建要复制到debian服务器的模板应用程序构件?例如,您使用的是
dotnet build
还是dotnet publish
?您能运行哪个dotnet
和dpkg-L aspnetcore-runtime-2.1
?@omajid我在问题的末尾添加了相关信息,从而解决了这个问题。如果你回答,我会接受它。@ShaunLuttin它是在Windows中用Visual Studio创建的,使用内置的“发布”对话框,文件夹部署框架相关。还有一个请求:你能echo$PATH
?既然你提到了它,我在发行版的很早就安装了,我相信我可能已经从github克隆/下载了tarball。不记得了,但一定要记住,这比微软网站上的说明要复杂得多。
$ sudo apt install aspnetcore-runtime-2.1
[sudo] password for root:
Reading package lists... Done
Building dependency tree
Reading state information... Done
aspnetcore-runtime-2.1 is already the newest version (2.1.2-1).
$ which dotnet
/usr/local/bin/dotnet