我尝试在Linux(Ubuntu 18.10)下用VSCode打开Unity3D项目,omnisharp扩展没有加载项目,说没有找到程序集。
这可能看起来很愚蠢,但我还没有真正习惯.Net,我已经被这个错误困扰了好几天了。我一直在尝试重新安装dotnet(甚至使用snap包),mono,vscode和omnisharp扩展。
所以任何帮助都是受欢迎的!:)
Unity版本:2018.3.1f1
记录档:
网络--信息
.NET Core SDK (reflecting any global.json):
Version: 2.2.103
Commit: 8edbc2570a
Runtime Environment:
OS Name: ubuntu
OS Version: 18.10
OS Platform: Linux
RID: ubuntu.18.10-x64
Base Path: /usr/share/dotnet/sdk/2.2.103/
Host (useful for support):
Version: 2.2.1
Commit: 878dd11e62
.NET Core SDKs installed:
2.2.103 [/usr/share/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.AspNetCore.All 2.2.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
Microsoft.AspNetCore.App 2.2.1 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 2.2.1 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
单声道--版本
Mono JIT compiler version 4.6.2 (Debian 4.6.2.7+dfsg-1ubuntu1)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: amd64
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
完整日志错误:
Starting OmniSharp server at 1/26/2019, 7:13:55 PM
Target: /home/eyap/Projects/Unity/TestProject/TestProject.sln
OmniSharp server started.
Path: /home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/run
PID: 30136
[info]: OmniSharp.Stdio.Host
Starting OmniSharp on ubuntu 18.10 (x64)
[info]: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 15.0 - "/home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin"
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to '/home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin/MSBuild.dll'
[info]: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 15.0 - "/home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin"
MSBuildExtensionsPath = /home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild
BypassFrameworkInstallChecks = true
CscToolPath = /home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin/Roslyn
CscToolExe = csc.exe
MSBuildToolsPath = /home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin
TargetFrameworkRootPath = /usr/lib/mono/xbuild-frameworks
[info]: OmniSharp.Cake.CakeProjectSystem
Detecting Cake files in '/home/eyap/Projects/Unity/TestProject'.
[info]: OmniSharp.Cake.CakeProjectSystem
Could not find any Cake files
[info]: OmniSharp.WorkspaceInitializer
Project system 'OmniSharp.DotNet.DotNetProjectSystem' is disabled in the configuration.
[info]: OmniSharp.MSBuild.ProjectSystem
Detecting projects in '/home/eyap/Projects/Unity/TestProject/TestProject.sln'.
[info]: OmniSharp.MSBuild.ProjectManager
Queue project update for '/home/eyap/Projects/Unity/TestProject/Assembly-CSharp.csproj'
[info]: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in '/home/eyap/Projects/Unity/TestProject'.
[info]: OmniSharp.Script.ScriptProjectSystem
Could not find any CSX files
[info]: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpWorkspaceOptionsProvider
[info]: OmniSharp.WorkspaceInitializer
Configuration finished.
[info]: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location '/home/eyap/Projects/Unity/TestProject' on host 30056.
[info]: OmniSharp.MSBuild.ProjectManager
Loading project: /home/eyap/Projects/Unity/TestProject/Assembly-CSharp.csproj
[fail]: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/home/eyap/Projects/Unity/TestProject/Assembly-CSharp.csproj'.
/home/eyap/Projects/Unity/TestProject/Assembly-CSharp.csproj
/home/eyap/.vscode/extensions/ms-vscode.csharp-1.17.1/.omnisharp/1.32.8/omnisharp/msbuild/15.0/Bin/Microsoft.Common.CurrentVersion.targets(1195,5): Error: The reference assemblies for framework ".NETFramework,Version=v4.7.1" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend.
[fail]: OmniSharp.MSBuild.ProjectManager
Attemped to update project that is not loaded: /home/eyap/Projects/Unity/TestProject/Assembly-CSharp.csproj
9条答案
按热度按时间5f0d552i1#
尝试了这里提到的步骤,没有解决错误。必须将
omnisharp.useGlobalMono
选项更改为always
。这对C# extension for VS Code=1.23.2
有效。来源:Reddit Post
你的错误输出告诉我你使用的是VS代码的官方C#扩展。该扩展的最新版本1.23.2在它的修改日志中有这样的描述:
直到Mono升级其捆绑的MSBuild版本
默认设置“自动”不起作用。请将其切换为“始终”并重新启动扩展。或者,您可以降级到1.23.1。
qybjjes12#
我也遇到了同样的问题,但在OSX上。安装最新版本的Mono清除了丢失的.net v4. 7. 1框架引用。
我从https://www.mono-project.com/download/stable安装了Mono V5.18.0
更新:参见以下关于全局omnisharp设置的注解
wr98u20j3#
我也遇到了同样的情况,我在这里找到了一个变通办法:https://github.com/Microsoft/msbuild/issues/2728
您必须执行
export FrameworkPathOverride=/lib/mono/4.5
,然后才会找到.NETFramework。ubbxdtey4#
我有同样的问题,这里是我如何解决它。
1.从here下载最新的稳定Mono并安装。
1.将FrameworkPathOverride添加到.bash_profile
重新启动VSCode,VSCode便可正常工作。
clj7thdc5#
1.在linux的薄荷18.3西尔维亚(ubuntu 16.04)安装单开发像https://www.mono-project.com/download/stable/#download-lin。
1.然后在终端
export FrameworkPathOverride=/etc/mono/4.5
中执行1.开放vs代码和作品。
zxlwwiss6#
在Linux Mint 18.3 Sylvia(Ubuntu 16.04)中安装mono-devel,如https://www.mono-project.com/download/stable/#download-lin。然后在终端中执行
打开VScode,它就能工作了。这就是我在Ubuntu 20. 04的干净安装上工作的地方。
6yoyoihd7#
对于Windows 10用户:
如果仍然遇到此Omnisharp错误:
1.如果VS代码已打开,请将其关闭
1.下载并安装**.NETFramework 4.7.1开发人员包**
https://dotnet.microsoft.com/en-us/download/dotnet-framework/net471
(VS代码可能会建议更新版本,但截至2022年3月25日,这些版本不起作用)
1.在VS代码中重新打开Unity项目
以上步骤应能解决问题,但如果您仍有问题(例如,Intellisense无法正常工作),请尝试调整Unity设置:
1.打开您的Unity项目,单击编辑〉项目设置...〉播放器〉其他设置〉API兼容性级别(在“配置”下)
1.将API兼容性级别更改为
.NET 4.x
1.重新启动Unity和VS代码
pxq42qpu8#
经过一天的研究,在ubuntu和unity.NETFRAMEWORK4.7上出了什么问题。我通过改变omnisharp:useglobalmenu到总是在VSCODE设置中来解决这个问题。这里是我找到的解决方案链接https://github.com/OmniSharp/omnisharp-vscode/issues/3613#issuecomment-677451385
xbp102n09#
在较新的OmniSharp版本(用于.NET 6开发)上,“Omnisharp:使用现代的Net”选项需要被禁用。也许只为本地工作区更改它,以保持您的非Unity.NET核心项目不受影响。
或者,在您的主文件夹(全局设置)或项目工作区(本地设置)中更改.vscode/settings.json文件。
{ [...] "omnisharp.useModernNet": false, [...] }