Linux中的Visual Studio代码 - 将F5(调试)从“dotnet build”重新映射到“msbuild csproj”?

问题描述 投票:1回答:1

我尝试在Ubuntu Linux中的Visual Studio(VS)代码中构建一个C#项目,但是默认构建(F5 Debug)总是运行命令“dotnet build”。这反过来不起作用,因为在我的csproj文件(Project.csproj)中,我使用以下设置:

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

这反过来试图在目录中构建每个csproj文件(我只想构建一个),它也无法在.NETFramework v4.5上构建每个文件,产生以下错误:

/usr/share/dotnet/sdk/2.0.2/Microsoft.Common.CurrentVersion.targets(1122,5):错误MSB3644:找不到框架“.NETFramework,Version = v4.5”的引用程序集。要解决此问题,请为此框架版本安装SDK或Targeting Pack,或者将应用程序重新定位到已安装SDK或Targeting Pack的框架版本。请注意,程序集将从全局程序集缓存(GAC)中解析,并将用于代替参考程序集。因此,您的程序集可能无法正确定位到您想要的框架。

我找到了一个解决方法,下载并安装Mono,然后是NuGet,然后在VS Code TERMINAL窗口中使用Mono的这个命令:

jbrumbaugh@jbrumbaugh-VirtualBox:~/Dropbox/.../Project$ msbuild Project.csproj

此命令在bin / debug文件夹中成功创建了一个工作EXE。

我的问题是我实际上无法使用VS Code调试器来命中断点并逐步执行代码。有没有办法可以修改VS代码或某些csproj文件中的设置,以便将.NET框架成功重新路由到Mono使用的设置,或者用我指定的命令替换默认的debug build命令?

c# linux msbuild mono visual-studio-code
1个回答
1
投票

您可以通过几种不同的方式配置F5命令的功能。

最简单的方法是修改预启动任务。这可以在文件"${workspaceFolder}/.vscode/tasks.json中找到。默认情况下,F5命令运行标记为build的任务,默认情况下该任务设置为运行dotnet build。您可以通过编辑commandargs字段来自定义任务。有关更多信息,请参阅https://code.visualstudio.com/docs/editor/tasks

你可以做的另一件事是重新映射F5的功能。默认情况下,它运行workbench.action.debug.start命令。您可以转到菜单File> Preferences> Keyboard Shortcuts重新映射。有关更多信息,请参阅https://code.visualstudio.com/docs/getstarted/keybindings

© www.soinside.com 2019 - 2024. All rights reserved.