Visual Studio Extension
Adds context menu items to convert projects/files between VB.NET and C#. See the wiki documentation for help using it.
Download from Visual Studio Marketplace (Requires VS 2017 15.9.3+)
- 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.
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.
Other ways to use the converter
Extension "nightly" developer builds (potentially less stable and more effort to update): https://ci.appveyor.com/project/icsharpcode/codeconverter/branch/master
Online snippet converter: https://codeconverter.icsharpcode.net/ (less accurate due to lack of project context)
NuGet package: https://www.nuget.org/packages/ICSharpCode.CodeConverter/
Building/running from source
- Ensure you have .NET Core SDK 2.2+
- Open the solution in Visual Studio 2017+
- To run the website, set CodeConverter.Web as the startup project
- To run the Visual Studio extension, set Vsix as the startup project and in the project properties, set:
- "Start external program" to
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
- "Command line arguments" to
This was previously part of Refactoring Essentials. However, because of the way analyzers are tied to Visual Studio and Roslyn versions made it super-hard to co-evolve the code converter bits. That is why we teased the converters out and they are now a self-contained entity.