mip*_*pnw 9 .net-core visual-studio-code windows-subsystem-for-linux
Windows 10上的VSCode 1.20.0,带有C#扩展名ms-vscode.csharp 1.14.0.VSCode终端指向bash(适用于Linux的Windows子系统)VSCode在包含.NET CORE 2.0 C#项目的文件夹上打开
一切都很好,intellisense工作,项目参考被理解.
每当我将焦点切换到VS Code终端并输入"dotnet build"或"dotnet test"时,VSCode就会感到困惑.Red Squigglies强调每行源代码,intellisense停止工作,VSCode打开两个信息框说
Info: There are unresolved dependencies from src\Project.csproj. Please execute the restore command to continue.
Info: There are unresolved dependencies from test\Project.Tests.csproj. Please execute the restore command to continue.
当我单击信息框内的"恢复"按钮时,大约15秒后项目再次工作.但为什么,这种情况一直在发生,我倾向于经常使用dotnet构建.我可以不同地配置VS代码以避免此问题吗?构建代码会破坏编辑器功能似乎不对,所以我必须做错事.
编辑:
这个问题似乎只在我dotnet build或dotnet testWSL\bash(无论是内部终端还是外部终端)时重现.当我在外部cmd.exe中构建或测试时,它似乎没有重现
编辑:
cmd.exe dotnet --info
.NET命令行工具(2.1.4)
产品信息:版本:2.1.4提交SHA-1哈希:5e8add2190
运行时环境:操作系统名称:Windows操作系统版本:10.0.16299操作系统平台:Windows RID:win10-x64基本路径:C:\ Program Files\dotnet\sdk\2.1.4 \
Microsoft .NET核心共享框架主机
版本:2.0.5建立:17373eb129b3b05aa18ece963f8795d65ef8ea54
WSL\bash $ dotnet --info
.NET命令行工具(2.0.3)
产品信息:版本:2.0.3提交SHA-1哈希:eb1d5ee318
运行时环境:操作系统名称:ubuntu操作系统版本:16.04操作系统平台:Linux RID:ubuntu.16.04-x64基本路径:/usr/share/dotnet/sdk/2.0.3/
Microsoft .NET核心共享框架主机
版本:2.0.3 Build:a9190d4a75f4a982ae4b4fa8d1a24526566c69df
发生这种情况的原因可能是因为 VS Code 使用在 Windows 上运行的 Omnisharp - 当您使用 Bash 构建时,您正在为 Linux 构建,因此 obj 文件夹中的文件中生成的所有引用路径都将是 Linux 路径,而不是 Windows路径。
当 Omnisharp 在 VS Code 中查找智能感知的引用依赖项时,它找不到它们,因此 VS Code 要求您恢复项目。
您可以通过检查 obj 文件夹中的任何文件并查看路径来确认。
编辑 - 2019
只是对此的更新 - 事情看起来很有希望。我们很快将能够使用 VS Code远程扩展包在 WSL 环境(或 Docker 容器,甚至通过 SSH 会话)内运行扩展。这非常棒 - 这意味着我们的代码不仅可以在 WSL 中运行,扩展也可以 - 因此 OmniSharp 扩展将在 WSL 中运行,使用 Linux 二进制文件进行智能感知等。
我个人对微软发布的新工具感到非常兴奋。现在是使用 WSL、VS Code、Docker 和 Hyper V 等工具在 Windows 平台上进行开发的绝佳时机……即将推出的 WSL 2 将令人难以置信(完整的 Linux 内核已融入 Windows!!!)
| 归档时间: |
|
| 查看次数: |
1609 次 |
| 最近记录: |