Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux dotnet命令不使用';找不到新安装的.NET Core 2.1_Linux_Asp.net Core_.net Core - Fatal编程技术网

Linux dotnet命令不使用';找不到新安装的.NET Core 2.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

我正在尝试在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 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

  • 我强烈建议选择1


    我不知道为什么这两个程序安装在不同的位置和不同的可执行文件。在您安装的版本发布后,安装说明可能已更改,软件包也已可用?

    您如何创建要复制到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