Convert code from C# to VB.NET and vice versa using Roslyn
Перейти к файлу
Graham abea7014d5
Merge pull request #1150 from LucTremblay/defaultThreadCurrentUICulture
Set the DefaultThreadCurrentUICulture to a specific culture, asserted error language consistency
2024-11-09 12:21:09 +00:00
.github
CodeConverter
CommandLine
Func
Tests
Vsix
Web
hooks
.editorconfig
.gitattributes
.gitignore
CHANGELOG.md
CodeConverter.sln
CodeConverter.sln.DotSettings
CodeConverter.slnLaunch
Directory.Build.props
DotNetBuildable.slnf
DotNetPublishable.slnf
IncrementVersion.ps1
LICENSE
README.md
SECURITY.md
Update-NpmPackages.ps1
nuget.config

README.md

Code Converter

Build CodeConverter Install

Convert code from VB.NET to C# (and vice versa) using Roslyn - all free and open source:

  • Visual Studio extension
    • To install close VS and double-click the downloadeded .vsix file
  • Online snippet converter
  • Command line dotnet tool install ICSharpCode.CodeConverter.codeconv --global (still requires VS2022 17.1+ installed)
  • Nuget library (this underpins all other free converters you'll find online)

See wiki for advice on getting the best results, or the changelog for recent improvements.

Visual Studio Extension

Adds context menu items to convert projects/files between VB.NET and C#. See the wiki documentation for advice / help using it.

Download from Visual Studio Marketplace (Use VS 2022 17.1+)

  • Flexible: Convert a small selection, or a whole solution in one go, in either direction.
  • Accurate: Full project context (through Roslyn) is used to get the most accurate conversion.
  • Safe: Conversion runs entirely locally - your code doesn't leave your machine.
  • Completely free and open source GitHub project.
  • Integrated: Uses the Output window to show conversion progress / summary.
  • Actively developed: User feedback helps us continuously strive for a more accurate conversion.

Selected text conversion context menu

Contributing

Let us know what needs improving. If you want to get involved in writing the code yourself, even better! We've already had code contributions from several first time GitHub contributors, so don't be shy! See Contributing.md for more info.

The VB -> C# conversion quality is much higher than the C# -> VB conversion quality. The use cases differ considerably as does the supply/demand of improvements.

Use cases

Visual Basic .NET is slowly dying. It has support for some project types on .NET 5, but won't be getting new features according to the .NET Team Blog. Hence the main use case for:

  • VB->C#: moving whole projects
  • C#->VB: help incorporate snippets from stack overflow into existing VB codebase, or to help learning one language from the other

Other ways to use the converter

Building/running from source

  1. Ensure you have .NET Core SDK 6.0
  2. Open the solution in Visual Studio 2022+ (Community edition is sufficient)
  3. To run the website, set CodeConverter.Web as the startup project
  • You will need Node (LTS) 16.* (node 17 introduces a breaking change causing ERR_OSSL_EVP_UNSUPPORTED)
  1. To run the Visual Studio extension, set Vsix as the startup project
    • A new instance of Visual Studio will open with the extension installed

History

A spiritual successor of the code conversion within SharpDevelop and later part of Refactoring Essentials, the code converter was separated out to avoid difficulties with different Visual Studio and Roslyn versions.

More screenshots