Hac*_*loo 6 .net-core dotnet-sdk ubuntu-20.04 .net-7.0
我按照这些说明在 Ubuntu 20.04 上安装 dotnet。
安装sdk Ubuntu 20.04
此时的指令是:
wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb rm packages-microsoft-prod.deb
sudo apt-get update && \ sudo apt-get install -y dotnet-sdk-6.0
现在我可以构建net6.0项目了。
然后我安装7
sudo apt install dotnet-sdk-7.0
然后,当我尝试构建我的 net6.0 项目时,我得到:
CSC : warning CS8034: Unable to load Analyzer assembly /usr/share/dotnet/sdk/7.0.200/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll : Could not load file or assembly 'Microsoft.AspNetCore.Analyzers, Version=7.0.3.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. Access is denied.
Run Code Online (Sandbox Code Playgroud)
在许多其他程序集上也出现同样的错误。当我尝试构建 net6.0 项目时,我不应该收到有关 net7.0 程序集的错误。如果我将 csproj 中的目标框架更改为 net7.0,则会出现相同的错误。
但是,如果我添加 sudo,我仍然可以将我的项目构建为 net6.0 和 net7.0。这些权限是您所期望的:
ls -l /usr/share/dotnet/sdk/7.0.200/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll
-rw-r--r-- 1 root root 42664 jan 30 23:01 /usr/share/dotnet/sdk/7.0.200/Sdks/Microsoft.NET.Sdk.Web/analyzers/cs/Microsoft.AspNetCore.Analyzers.dll
Run Code Online (Sandbox Code Playgroud)
与对应的net6.0文件权限相同。
我试过这个:
sudo apt remove dotnet-sdk-6.0 dotnet-sdk-7.0 dotnet sudo apt clean autoclean autoremove
export DOTNET_ROOT=/usr/share/dotnet
export PATH=$PATH:$DOTNET_ROOT
Run Code Online (Sandbox Code Playgroud)
这没有什么区别。
我的同事发现在Ubuntu 22.04上安装dotnet-sdk-7.0也破坏了构建net6.0项目的可能性。但我不知道这方面的所有细节。
dotnet --info 的一些输出
.NET SDK:
Version: 7.0.200
.NET SDKs installed:
6.0.406
7.0.200
.NET runtimes installed:
Microsoft.AspNetCore.App 6.0.14
Microsoft.AspNetCore.App 7.0.3
Microsoft.NETCore.App 6.0.14
Microsoft.NETCore.App 7.0.3
Environment variables:
Not set
global.json file:
Not found
Run Code Online (Sandbox Code Playgroud)
我对这个问题进行了新的尝试。我按照此处的说明进行操作:https ://learn.microsoft.com/en-us/dotnet/core/install/linux-ubuntu#troubleshooting
两个 bash 指令,第一个是:
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)
然后是这个:
sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/20.04/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && \
sudo apt-get install -y dotnet-sdk-7.0
Run Code Online (Sandbox Code Playgroud)
然后突然就起作用了
小智 0
这是一个可怕的解决方法,但我也遇到了同样的问题,我发现dotnet build
以 root 身份运行(即sudo dotnet build
)可以让构建成功。
和你一样,我对参考文件的权限看起来很好。我怀疑 7.0 SDK 中存在一些内部工具,其安装权限不正确。
我的dotnet --info
,供参考:
.NET SDK:
Version: 7.0.201
Commit: 68f2d7e7a3
Runtime Environment:
OS Name: ubuntu
OS Version: 22.04
OS Platform: Linux
RID: ubuntu.22.04-x64
Base Path: /usr/share/dotnet/sdk/7.0.201/
Host:
Version: 7.0.3
Architecture: x64
Commit: 0a2bda10e8
.NET SDKs installed:
6.0.406 [/usr/share/dotnet/sdk]
7.0.201 [/usr/share/dotnet/sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 7.0.3 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.3 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8986 次 |
最近记录: |