(1)
bing mac unity vscode 缺少 .netframe 4.7.1
(2)
Assemblies targeting .Net Framework 4.7.1 fail to load on Mac, plugin v1.21.11 #3613
https://github.com/OmniSharp/omnisharp-vscode/issues/3613
Issue Description
When loading my Unity (v2018.4.2f) project in Visual Studio Code, the assemblies fail to load and intellisense doesn't work. This seems to have been introduced in version 1.21.11, as rolling back to v1.21.10 works fine.
Steps to Reproduce
- Create a project in Unity, v2018.4.2
- Target .Net Framework 4.7.1 by setting Scripting Runtime Version to .Net 4.x Equivalent in Edit/Project Settings/Player/Scripting Runtime Version
- Open up the project in Visual Studio Code
- Observe the plugin fails to load the assemblies
Expected Behavior
The assemblies should load, allowing me to see function references and Go To implementations and definitions.
Actual Behavior
Logs
OmniSharp log
Starting OmniSharp server at 2/27/2020, 3:58:25 PM
Target: /Users/erowe/Development/sparklite/sparklite.sln
OmniSharp server started.
Path: /Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/run
PID: 26956
Starting OmniSharp on MacOS 10.14.6 (x64)
info: OmniSharp.Services.DotNetCliService
DotNetPath set to dotnet
info: OmniSharp.MSBuild.Discovery.MSBuildLocator
Located 1 MSBuild instance(s)
1: StandAlone 16.3 - "/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin"
info: OmniSharp.MSBuild.Discovery.MSBuildLocator
MSBUILD_EXE_PATH environment variable set to '/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/MSBuild.dll'
info: OmniSharp.MSBuild.Discovery.MSBuildLocator
Registered MSBuild instance: StandAlone 16.3 - "/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin"
CscToolExe = csc.exe
MSBuildToolsPath = /Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin
CscToolPath = /Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Roslyn
BypassFrameworkInstallChecks = true
MSBuildExtensionsPath = /Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild
info: OmniSharp.Cake.CakeProjectSystem
Detecting Cake files in '/Users/erowe/Development/sparklite'.
info: OmniSharp.Cake.CakeProjectSystem
Could not find any Cake files
info: OmniSharp.MSBuild.ProjectSystem
Detecting projects in '/Users/erowe/Development/sparklite/sparklite.sln'.
info: OmniSharp.MSBuild.ProjectManager
Queue project update for '/Users/erowe/Development/sparklite/Assembly-CSharp.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for '/Users/erowe/Development/sparklite/Assembly-CSharp-firstpass.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for '/Users/erowe/Development/sparklite/Assembly-CSharp-Editor.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for '/Users/erowe/Development/sparklite/Assembly-CSharp-Editor-firstpass.csproj'
info: OmniSharp.MSBuild.ProjectManager
Queue project update for '/Users/erowe/Development/sparklite/RBG.Mulligan.csproj'
info: OmniSharp.Script.ScriptProjectSystem
Detecting CSX files in '/Users/erowe/Development/sparklite'.
info: OmniSharp.MSBuild.ProjectManager
Loading project: /Users/erowe/Development/sparklite/Assembly-CSharp.csproj
info: OmniSharp.Script.ScriptProjectSystem
Could not find any CSX files
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, Order: 0
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, Order: 100
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, Order: 110
info: OmniSharp.WorkspaceInitializer
Invoking Workspace Options Provider: OmniSharp.Roslyn.CSharp.Services.EditorConfigWorkspaceOptionsProvider, Order: 200
info: OmniSharp.WorkspaceInitializer
Configuration finished.
info: OmniSharp.Stdio.Host
Omnisharp server running using Stdio at location '/Users/erowe/Development/sparklite' on host 26922.
fail: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/erowe/Development/sparklite/Assembly-CSharp.csproj'.
/Users/erowe/Development/sparklite/Assembly-CSharp.csproj
/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
Loading project: /Users/erowe/Development/sparklite/Assembly-CSharp-firstpass.csproj
fail: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/erowe/Development/sparklite/Assembly-CSharp-firstpass.csproj'.
/Users/erowe/Development/sparklite/Assembly-CSharp-firstpass.csproj
/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
Loading project: /Users/erowe/Development/sparklite/Assembly-CSharp-Editor.csproj
fail: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/erowe/Development/sparklite/Assembly-CSharp-Editor.csproj'.
/Users/erowe/Development/sparklite/Assembly-CSharp-Editor.csproj
/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
Loading project: /Users/erowe/Development/sparklite/Assembly-CSharp-Editor-firstpass.csproj
fail: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/erowe/Development/sparklite/Assembly-CSharp-Editor-firstpass.csproj'.
/Users/erowe/Development/sparklite/Assembly-CSharp-Editor-firstpass.csproj
/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
Loading project: /Users/erowe/Development/sparklite/RBG.Mulligan.csproj
fail: OmniSharp.MSBuild.ProjectLoader
The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
[warn]: OmniSharp.MSBuild.ProjectManager
Failed to load project file '/Users/erowe/Development/sparklite/RBG.Mulligan.csproj'.
/Users/erowe/Development/sparklite/RBG.Mulligan.csproj
/Users/erowe/.vscode/extensions/ms-vscode.csharp-1.21.11/.omnisharp/1.34.11/omnisharp/.msbuild/Current/Bin/Microsoft.Common.CurrentVersion.targets(1193,5): Error: The reference assemblies for .NETFramework,Version=v4.7.1 were not found. To resolve this, install the Developer Pack (SDK/Targeting Pack) for this framework version or retarget your application. You can download .NET Framework Developer Packs at https://aka.ms/msbuild/developerpacks
Attempted to update project that is not loaded: /Users/erowe/Development/sparklite/Assembly-CSharp.csproj
fail: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/erowe/Development/sparklite/Assembly-CSharp-firstpass.csproj
fail: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/erowe/Development/sparklite/Assembly-CSharp-Editor.csproj
fail: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/erowe/Development/sparklite/Assembly-CSharp-Editor-firstpass.csproj
fail: OmniSharp.MSBuild.ProjectManager
Attempted to update project that is not loaded: /Users/erowe/Development/sparklite/RBG.Mulligan.csproj
C# log
Installing C# dependencies...
Platform: darwin, x86_64
Downloading package 'OmniSharp for OSX' (46346 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package 'OmniSharp for OSX'
Downloading package '.NET Core Debugger (macOS / x64)' (41849 KB).................... Done!
Validating download...
Integrity Check succeeded.
Installing package '.NET Core Debugger (macOS / x64)'
Downloading package 'Razor Language Server (macOS / x64)' (50424 KB).................... Done!
Installing package 'Razor Language Server (macOS / x64)'
Finished
Environment information
VSCode version: 1.42.1
C# Extension: 1.21.11
Mono Information OmniSharp using built-in mono
Dotnet Information .NET Core SDK (reflecting any global.json): Version: 2.1.401 Commit: 91b1c13032
Visual Studio Code Extensions
@edwardrowe The built-in mono does not contain reference assemblies. To fix this problem you should install the stable mono - https://www.mono-project.com/download/stable/#download-mac
(3)
bing mac unity vscode 调试
(4)
mac unity vscode 调试指导
Mac上用VS Code调试 Unity程序
https://blog.csdn.net/yunman2012/article/details/94405224
vs code 像 sublime、notepad++、atom 等编辑器一样,轻量级,插件多。今天笔者就在开发的时候 monoDevelop 莫名的打不开,所以就决定用 vs code+插件的方式来开发调试程序。
vs code 还有一个好处是,很多快捷键跟 windows 上的 visual studio一样,这样熟悉 windows 上开发的话,很快就能上手了。
首先介绍一个网址:vs code官方介绍
vs code 下载网址:
https://code.visualstudio.com/Download
在这里插入图片描述
.NET 本地安装
首先的确保你的 mac 安装了 .net 的 sdk,如果没有的话,请先去下载,下载网址https://www.microsoft.com/net/learn/get-started/macos
如果安装成功的话,你在 terminal 上敲下面命令行:
dotnet --version
运行结果出现下面的提示,证明你的 dotnet 安装成功了。
在这里插入图片描述
Unity 设置
打开你的 unity ,选择 Unity->Prefences->External Tools,做如下图的设置,使你的 unity 默认代码编辑器是 vs code。
在这里插入图片描述
关联成功之后,你双击 unity 项目中的 代码默认就打开 vscode了。到这里就成功了一半。
断点调试
打开 vs code 之后,点击 Debug->Install Additional Debuger…
在出来的列表中,定位到 Debugger for Unity, 点击安装,等待安装完成。
在这里插入图片描述
如果你点击调试按钮,vs code 右下角出现如下图示的错误:
在这里插入图片描述
这是因为你电脑没有安装mac mono 所造成的,这里说所的mono 并不是unity安装自带的monoDeveloper, 你可以下载mac mono 在如下地址:
http://www.mono-project.com/download/
点击左上角调试按钮,Attach 到 Unity。如果没有出现 Unity-Editor 的选择,先删除本地的 .vscode/Launch.json, 然后重启vscode.
在这里插入图片描述
我试了一下,按 F5快捷键 也可以直接开启调试的,这点跟 Windows 相同,还有 F12跳到函数定义,都是一样的。哈哈。。
在这里插入图片描述
生成 DLL
有时候我们的代码不一定写在 unity一侧,而是一个 lib工程。作为类库,导入到 unity 项目中,而 vs code 如何编译生成 dll 呢。
这里我们使用dotnet new 命令来生成一个空的 lib 工程,名字叫 helloworld.
dotnet new classlib -n "helloworld"
然后编译生成 dll 。
dotnet restore
dotnet build
运行结果如下所示:
在这里插入图片描述
生成的 dll 保存路径都有放在/bin/Debug/目录下。默认生成的 Debug 模式的,如果想生成Release 和更改生成的路径等可以用参数指定
在这里插入图片描述
除了使用dotnet命令, 我们还可以使用msbuild来编dll, 如果我们的sln里包含了多个.csproj 就非常适合使用MSBuild了。
首先安装,可以去mono官网去下载最新版本, 下载地址:https://download.mono-project.com/archive/
msbuild /vershion
运行结果如下所示:
在这里插入图片描述
cd到sln所在的目录,清除历史编译生成的dll,可以使用:
MSBuild CFClient.sln /t:Clean
上面CFClient.sln 是sln的文件名
重新生成新的dll可以使用如下命令:
MSBuild CFClient.sln /t:Rebuild /p:TargetFrameworkVersion=v4.0 /p:Configuration=Debug /p:PostBuildEvent="" /p:TargetFrameworkProfile="Client"
在这里插入图片描述
更多的使用可以使用命令查看:
MSBuild /?
在这里插入图片描述
vs code 插件
Unity Shanderlab 代码高亮提示
在这里插入图片描述
注释功能,键入"///“或者”/**/" 自动帮你生成注释,风格跟 vs 一样的。
在这里插入图片描述
配置代码自动换行和保存格式化可以通过点击 Code->Prefences->Settings,
在右侧栏配置相关的选项,左边是所有可配置选项的说明,下面是我的配置选项。
{
"workbench.activityBar.visible": false,
"window.zoomLevel": -1,
"workbench.statusBar.visible": true,
"editor.minimap.enabled": false,
"editor.formatOnSave": true,
"csharpfixformat.style.braces.onSameLine": false,
"csharp.format.enable": true
}
正所谓好刀不误砍柴功,有了更加强大的编辑器,我们写代码的效率也会相应的提升。
好了,今天的文章就到这里了,祝大家工作顺利。
————————————————
版权声明:本文为CSDN博主「huailiang2010」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yunman2012/article/details/94405224
(5)
自己安装过程
(5.1)
安装 VSCode
https://code.visualstudio.com/Download
(5.2)
安装 Debugger for Unity ,会一起安装 .NetCore ,主要是安装 OmniSharp ,OmniSharp 会自动安装 .NetCore
.NetCore 单独安装下载
https://www.microsoft.com/net/learn/get-started/macos
OmniSharp 单独安装
OmniSharp 下载
https://github.com/OmniSharp/omnisharp-vscode/releases
OmniSharp / omnisharp-vscode
https://github.com/OmniSharp/omnisharp-vscode
Official C# support for Visual Studio Code (powered by OmniSharp)
进入
https://github.com/OmniSharp/omnisharp-vscode
点击 releases 进入
https://github.com/OmniSharp/omnisharp-vscode/releases
(5.3)
mac mono 安装,其实这个不用安装,但是如果出现
Assemblies targeting .Net Framework 4.7.1 fail to load on Mac, plugin v1.21.11
就需要安装
https://www.mono-project.com/download/stable/#download-mac
http://www.mono-project.com/download/
参考
https://github.com/OmniSharp/omnisharp-vscode/issues/3613
@edwardrowe The built-in mono does not contain reference assemblies. To fix this problem you should install the stable mono - https://www.mono-project.com/download/stable/#download-mac
https://blog.csdn.net/yunman2012/article/details/94405224
(6)
OmniSharp / omnisharp-vscode
https://github.com/OmniSharp/omnisharp-vscode
Official C# support for Visual Studio Code (powered by OmniSharp)