Unity Mac Vscode 调试

(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

  1. Create a project in Unity, v2018.4.2
  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
    image
  3. Open up the project in Visual Studio Code
  4. 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

Intellisense and
image

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 信息

http://www.omnisharp.net

https://github.com/OmniSharp

OmniSharp / omnisharp-vscode

https://github.com/OmniSharp/omnisharp-vscode

Official C# support for Visual Studio Code (powered by OmniSharp)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值