{"id":18572163,"url":"https://github.com/suesslabs/vslinuxdebug","last_synced_at":"2025-04-10T07:31:03.591Z","repository":{"id":39022396,"uuid":"466904709","full_name":"SuessLabs/VsLinuxDebug","owner":"SuessLabs","description":"VS Extension to remotely deploy and debug your .NET (Core) C# solutions directly to your Linux or Raspberry Pi devices! .NET Core 3.1, .NET 5, 6, 7, 8, 9","archived":false,"fork":false,"pushed_at":"2024-12-30T15:59:01.000Z","size":877,"stargazers_count":43,"open_issues_count":6,"forks_count":12,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-24T18:04:49.845Z","etag":null,"topics":["csharp","debugger","deploy","dotnet","linux","net","netcore","netcore31","raspberry-pi","raspberrypi","remote","ssh","suesslabs","visual-studio","visual-studio-extension","xeno-innovations"],"latest_commit_sha":null,"homepage":"https://marketplace.visualstudio.com/items?itemName=SuessLabs.VSLinuxDebugger","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SuessLabs.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-03-07T01:36:54.000Z","updated_at":"2025-03-18T18:18:43.000Z","dependencies_parsed_at":"2024-09-16T15:39:18.293Z","dependency_job_id":"4d23f26c-0c3d-4345-91c3-79f9034d18d5","html_url":"https://github.com/SuessLabs/VsLinuxDebug","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuessLabs%2FVsLinuxDebug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuessLabs%2FVsLinuxDebug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuessLabs%2FVsLinuxDebug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SuessLabs%2FVsLinuxDebug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SuessLabs","download_url":"https://codeload.github.com/SuessLabs/VsLinuxDebug/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248176258,"owners_count":21060032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","debugger","deploy","dotnet","linux","net","netcore","netcore31","raspberry-pi","raspberrypi","remote","ssh","suesslabs","visual-studio","visual-studio-extension","xeno-innovations"],"created_at":"2024-11-06T23:05:12.199Z","updated_at":"2025-04-10T07:31:03.575Z","avatar_url":"https://github.com/SuessLabs.png","language":"C#","readme":"# [VS .NET Linux Debugger](https://github.com/SuessLabs/VsLinuxDebug)\n\n\u003cimage align=\"right\" width=\"200\" height=\"200\" src=\"https://github.com/SuessLabs/VsLinuxDebug/blob/master/docs/TuxDebug.png\" /\u003e\n\nRemotely deploy and debug your .NET C# apps via SSH to Linux using Visual Studio 2022.\n\nGet it on the [VS MarketPlace](https://marketplace.visualstudio.com/items?itemName=SuessLabs.VSLinuxDebugger)!\n\nVisual Studio's \"attach to process via SSH\" is cute, but it lacks deployment and automatic attaching. This project allows you to do just that on your Linux VM or Raspberry Pi over the network!\n\nSuess Labs consulting is sponsored by _Xeno Innovations, Inc._\n\n## Overview\n\nNow developers can build, deploy and debug projects on their remote Linux (Ubuntu, Raspberry PI, etc) devices! Customize your SSH connection to use either a _password_ or a _private key_.\n\nIf you enjoy using the extension, please give it a ★★★★★ rating on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=SuessLabs.VSLinuxDebugger).\n\n### Supported Remote OS\n\nThe following Linux distrobutions have been validated and are supported.\n\n* Ubuntu (20.04 LTS, 22.04 LTS)\n* Raspberry PI OS\n\n### Usage\n\n![VS Menu](docs/ScreenShot-MenuItems.png)\n\n* Build and upload to remote devices\n* Remote debugging*\n  * _This is still in the experimental stages. Please use VS' Attach to Process if you have issues_\n* VS Linux Debugger will automatically detect and install `vsdbg` for you!\n\nFor GUI app debugging, you can use the _Build and Deploy_ feature, however, you must manually _Attach to Process_ via SSH using Visual Studio at this time.\n\n### Getting Started\n\n**Linux**, we'll need **SSH** and **cURL** for access and downloading any missing tools:\n\n```bash\nsudo apt install openssh-server\nsudo apt install curl\n```\n\n**Windows**:\n\n1. Open Visual Studio (VS) \u003e Tools \u003e Options \u003e **Linux Debugger**\n2. **Input:** Remote Host IP address\n3. **Input:** Remote's User Name and Password\n4. VS \u003e Extensions \u003e Linux Debugger \u003e **Build, Deploy, Debug**\n\n![Tools Options](docs/ScreenShot-ToolsOptions.png)\n\n### Manually Attaching (for GUI apps)\n\nFor GUI projects, you can use **Build and Deploy** and then manually attach to the process via SSH by using Visual Studio's built-in tool\n\n1. Deploy to remote machine via\n   1. Extensions \u003e Linux Debugger \u003e **\"Build and Deploy\"**\n2. Run GUI app on remote machine\n   1. `dotnet MyGuiApp.dll`\n3. Debug \u003e **\"Attach to Process..\"**\n4. Connection Type: **SSH**\n5. Connection Target: **(Remote machine's IP)**\n6. (Select process)\n7. Click, **Attach**\n8. Check, **\"Managed (.NET Core for Unix)\"**\n9. Click, **OK**\n\nThis will save you 1.5 minutes on every build of manual uploading and updating rights via `chown -R`.\n\n### Manually Attaching (for Command line apps)\n\nFor CLI projects, you can use **Build and Deploy** and then manually attach to the process via SSH by using Visual Studio's built-in tool (similar to above).\n\nYou may have to manually interrupt your app via `Console.ReadLine();` high-up in your entry-point (i.e. `main()`).\n\n1. Deploy to remote machine via\n   1. Extensions \u003e Linux Debugger \u003e **\"Build and Deploy\"**\n2. Run your CLI app on remote machine\n   1. `dotnet MyCliApp.dll`\n3. Debug \u003e **\"Attach to Process..\"**\n   1. Connection Type: **SSH**\n   2. Connection Target: **(Remote machine's IP)**\n   3. (Select process)\n   4. Click, **Attach**\n   5. Check, **\"Managed (.NET Core for Unix)\"**\n   6. Click, **OK**\n4. Continue your application, if using a manual interrupt (i.e. `Console.ReadLine();`)\n\nThis will save you 1.5 minutes on every build of manual uploading and updating rights via `chown -R`.\n\n## How To Generate Private Key (optional)\n\nThe following steps are options if you wish to use an SSH Private Key. These steps were written for Windows 10, however, on Linux the steps are similar.\n\n1. Open PowerShell:\n2. **Generate key** (_with old PEM format_)\n   1. `ssh-keygen -m PEM -t rsa -b 4096`\n   2. In the future, we'll be able to use `ssh-keygen`.. just not yet.\n3. Set output name (_default is okay for basic setups_)\n4. Input a passphrase for the key _(OPTIONAL)_\n5. Windows will now generate your RSA public/private key pair.\n   1. Default location: `%UserProfile%\\.ssh` (WINOWS)\n   2. The public key will be stored as `id_rsa.pub` in the directory\n6. **Upload the public key** to your remote machine\n   1. Navigate to folder, `~/.ssh/` on Linux device\n   2. If `~/.ssh/authorized_keys` exists, append the contents of `id_rsa.pub` to the next line.\n   3. If it does not exist, simply upload `id_rsa.pub` and rename it to, `authorized_keys`\n7. DONE!\n\n## Used By\n\n* [SuessLabs](https://suesslabs.com) and [Xeno Innovations](https://xenoinc.com)\n* [Wilderness Labs](https://github.com/WildernessLabs)\n* [Omnicell, Inc.](https://omnicell.com)\n\n_Want your name added? Reach out to us_\n\n## Future Features\n\n* [ ] **Debugging:** Launching of GUI apps for remote debugging\n* [ ] **Debugging:** PLink using PPK instead of manual password\n* [ ] **Options Window:** Multiple remote profile management\n* [ ] **Options Window:** SSH PPK generator assistant tool\n\n## Developers Wanted\n\nContributors and Q/A are welcomed!\n\nTo contribute, please pick off an item from the project or issue page. We'd love to hear your enhancement ideas as well.\n\n## References\n\n* [PuTTY PLink](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)\n* [Extension Docs](https://docs.microsoft.com/en-us/visualstudio/extensibility/creating-a-settings-category?view=vs-2022)\n* [Extension Sample](https://github.com/microsoft/VSSDK-Extensibility-Samples/tree/master/Options)\n* [Offroad Debugging](https://github.com/Microsoft/MIEngine/wiki/Offroad-Debugging-of-.NET-Core-on-Linux---OSX-from-Visual-Studio)\n\n\n_Copyright 2024 Xeno Innovations, Inc._\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuesslabs%2Fvslinuxdebug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsuesslabs%2Fvslinuxdebug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsuesslabs%2Fvslinuxdebug/lists"}