【问题标题】:Visual Studio Code .NET framework not working when launched through unity通过统一启动时,Visual Studio Code .NET 框架不起作用
【发布时间】:2020-09-18 12:25:00
【问题描述】:

我无法让 .net 框架在 vscode 中运行。当我正常打开 vscode 时,我可以让 .net 框架运行良好。但是,当我统一打开一个 .cs 文件并使用 vscode 作为我的默认编辑器时,我收到错误消息,因为 .net 框架不再在 vscode 中工作。我需要针对 c# 特定的自动完成和语法错误的框架。我在另一个已经关闭的帖子上收到了 cmets,说我需要更具体地说明这个问题。这不是统一不支持 .net 框架的问题。我已经尝试重新启动我的电脑,重新启动 vscode,重新启动统一,重新导入统一包,并重新下载 .net 框架。无论 vscode 是否使用统一快捷方式启动,所有 c# 代码在统一内部和外部都运行良好,但运行 dotnet 命令和任何与 c# 相关的自动完成/语法都不起作用。我可以通过在没有统一的情况下运行 vscode 并导航到文件来从统一编辑 c# 代码。感谢您的帮助。

unity 启动的 vscode 中运行的 dotnet 命令

dotnet 命令在通过快捷方式启动的 vscode 中运行

c#代码在unity内部工作

Omnisharp 错误消息/日志:

在 2020 年 5 月 30 日晚上 9:41:51 启动 OmniSharp 服务器 目标:a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln

OmniSharp 服务器已启动。 路径:c:\Users\0dps1.vscode\extensions\ms-dotnettools.csharp-1.22.0.omnisharp\1.35.2\OmniSharp.exe PID:15076

[信息]:OmniSharp.Stdio.Host 在 Windows 6.2.9200.0 (x64) [信息] 上启动 OmniSharp:OmniSharp.Services.DotNetCliService DotNetPath 设置为 dotnet [信息]:OmniSharp.MSBuild.Discovery.MSBuildLocator 找到 2 个 MSBuild 实例 1:Visual Studio Community 2019 16.6.30114.105 - “A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin" 2:独立 16.4 -“c:\Users\0dps1.vscode\extensions\ms-dotnettools.csharp-1.22.0.omnisharp\1.35.2.msbuild\Current\Bin” [信息]:OmniSharp.MSBuild.Discovery.MSBuildLocator 注册的 MSBuild 实例:Visual Studio Community 2019 16.6.30114.105 -“A:\Program Files\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin”[信息]: OmniSharp.Cake.CakeProjectSystem 检测 'a:\Github\Unity\2_Terminal_Hacker' 中的 Cake 文件。 [信息]:OmniSharp.Cake.CakeProjectSystem 找不到任何 Cake 文件 [信息]:OmniSharp.MSBuild.ProjectSystem 检测 'a:\Github\Unity\2_Terminal_Hacker\2_Terminal_Hacker.sln' 中的项目。 [信息]: OmniSharp.MSBuild.ProjectManager 'a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj' [信息] 的队列项目更新: OmniSharp.Script.ScriptProjectSystem 检测 'a:\Github\Unity\2_Terminal_Hacker' 中的 CSX 文件。 [信息]:OmniSharp.Script.ScriptProjectSystem 找不到任何 CSX 文件 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.CSharpFormattingWorkspaceOptionsProvider, 订单:0 [信息]:OmniSharp.MSBuild.ProjectManager 加载项目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj [信息]: OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.RenameWorkspaceOptionsProvider, 订单:100 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.ImplementTypeWorkspaceOptionsProvider, 订单:110 [信息]:OmniSharp.WorkspaceInitializer 调用工作区选项提供程序:OmniSharp.Roslyn.CSharp.Services.BlockStructureWorkspaceOptionsProvider, 订单:140 [信息]:OmniSharp.WorkspaceInitializer 配置完毕。 [信息]:OmniSharp.Stdio.Host Omnisharp 服务器使用 Stdio 在主机 13388 上的位置“a:\Github\Unity\2_Terminal_Hacker”运行。[失败]: OmniSharp.MSBuild.ProjectLoader 未找到 .NETFramework,Version=v4.7.1 的参考程序集。要解决此问题,请安装 Developer Pack(SDK/Targeting Pack)为此框架版本或重新定位您的应用程序。你可以 在以下位置下载 .NET Framework 开发人员包 https://aka.ms/msbuild/developerpacks [警告]: OmniSharp.MSBuild.ProjectManager 无法加载项目文件“a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj”。 a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj A:\Program 文件\微软视觉 Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1177,5): 错误:.NETFramework,Version=v4.7.1 的参考程序集是 未找到。要解决此问题,请安装 Developer Pack(SDK/Targeting Pack)为此框架版本或重新定位您的应用程序。你可以 在以下位置下载 .NET Framework 开发人员包 https://aka.ms/msbuild/developerpacks

[失败]:OmniSharp.MSBuild.ProjectManager 尝试更新未加载的项目:a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj

【问题讨论】:

    标签: c# .net unity3d visual-studio-code


    【解决方案1】:

    答案在日志中:

    [失败]:OmniSharp.MSBuild.ProjectLoader 的参考程序集 .NETFramework,Version=v4.7.1 未找到。要解决此问题,请安装 此框架版本的开发人员包(SDK/目标包)或 重新定位您的应用程序。您可以下载 .NET Framework Developer 在https://aka.ms/msbuild/developerpacks 打包 [警告]: OmniSharp.MSBuild.ProjectManager 无法加载项目文件 'a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj'。 a:\Github\Unity\2_Terminal_Hacker\Assembly-CSharp.csproj A:\Program 文件\微软视觉 Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets(1177,5): 错误:.NETFramework,Version=v4.7.1 的参考程序集是 未找到。要解决此问题,请安装 Developer Pack(SDK/Targeting Pack)为此框架版本或重新定位您的应用程序。你可以 在以下位置下载 .NET Framework 开发人员包 https://aka.ms/msbuild/developerpacks

    .Net sdk/system 库是通过 Visual Studio 安装的,因此 vscode/omnisharp 尝试从您的 Visual Studio Community 16.6 安装中提取它们(相关信息在日志的开头)。但看起来 VSCommunity 没有安装 v4.7.1 目标包。

    要解决此问题,请转到:

    Visual Studio 安装程序 -> Visual Studio 社区 -> 更多 -> 修改 -> 单个组件

    并检查“.NETFramework v4.7.1”包。安装后,重新启动东西,你应该很高兴。

    【讨论】:

    • 已安装 .NETFramework v4.7.1 目标包,但未安装 sdk。我现在会尝试安装它。
    • 它已安装,但 Omnisharp 仍然出现错误消息。我提出了一个新问题:stackoverflow.com/q/62124805/13118680 我想我需要帮助重新定位它
    • “重新定位”应用程序在这个意义上意味着更改 .csprojs 中的“目标框架”标签。无论你做什么都会被 Unity 覆盖,因为它坚持使用 4.7.1。
    • 检查文件系统的实际情况会很有用:你看到文件夹:C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework/4.7.1?
    • 是的,该文件夹存在。它有很多 .xml 和 .dll 文件。
    猜你喜欢
    • 2020-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多