Skip to content

Releases: icsharpcode/CodeConverter

8.5.0

10 Apr 17:12
ce7aa37
Compare
Choose a tag to compare

[8.5.0] - 2022-04-10

Known issue: In VS2017, right clicking a single file to convert in the solution explorer throws an error.
Workaround: Open the file, select its whole contents, right click and convert.

Vsix

  • Last version supporting VS2017 and some earlier VS2019 versions (15.7-16.9)

VB -> C#

  • Xml Namespace Imports now converted #836
  • Use explicit cast when integral numeric types are casted to enum #861
  • Correct inconsistent casing of event handlers #854

C# -> VB

[8.4.7] - 2022-03-12

  • Command line no longer silently exits for dot net framework projects
  • Log messages now include timestamps

[8.4.6] - 2022-03-02

Vsix

VB -> C#

  • Fix method arguments when calling a parametrized property with named arguments. #833
  • Fix access modifiers for explicit interface implementations. #819
  • Fix code generation for explicit interface implementations. #813
  • Add support for converting multiple selected files and folders. #485
  • Replace VB-specific library methods with idiomatic framework alternatives #814
  • Remove redundant break expressions in switch-case statements. #432
  • Generate out parameter instead of ref for implementations of external methods. #831
  • When passing a property ByRef, don't try to assign it back afterwards #843

C# -> VB

  • Improve snippet detection #825

[8.4.5] - 2022-01-26

Vsix

  • Only trigger build for converted project where possible #816

VB -> C#

  • Convert Exit Try to a do while false loop with a break statement #779
  • Fix missing parenthesis for null coalescing operator #811
  • No longer throws NRE for VB Static variable without initializer. See comment on #623
  • Convert nested xml literals to new XElement #253

C# -> VB

[8.4.4] - 2022-01-09

Vsix

VB -> C#

  • No longer throws NRE for embedded resources with no LastGenOutput #804
  • Append CompareMethod.Text for Strings methods when needed #655
  • Convert op_Implicit/op_Explicit calls to casts #678
  • Use Conversions.ToString when concatenating a DateTime with a string #806
  • Ensure named arguments are correctly named when followed by an omitted argument #808
  • Convert static variables into fields #623
  • Ensure query syntax join conditions are swapped to the necessary C# order #752
  • Convert nested exit statements to if statements #690

C# -> VB

  • More terse conversion in for loop with literal end value #798

[8.4.3] - 2021-12-23

Vsix

VB -> C#

  • Convert extension methods on ByRef reference types to static invocations #785
  • Wire up events for WithEvents fields in an ancestor class #774
  • Only create delegating property for WithEvents fields if there is a known write usage or descendant class Due to feedback on #615

C# -> VB

[8.4.2] - 2021-12-11

Vsix

  • Attempt to improve VS2017 compatibility

VB -> C#

  • Convert with blocks using structs to a local ref variable#634
  • Ensure xml-doc at start of file is kept #663

C# -> VB

[8.4.1] - 2021-10-02

Vsix

VB -> C#

  • Convert VB exclamation mark into C# indexer #765
  • Deal with nullable bools in binary expressions #712
  • No longer tries to qualify type parameters (e.g. in generic delegates) #771

C# -> VB

[8.4.0] - 2021-09-05

Vsix

  • VS2017 compatibility improvement
  • VS2022 Preview 3.1 compatibility

VB -> C#

C# -> VB

[8.3.1] - 2021-08-22

Vsix

  • Provided workaround in options for some assembly loading issues #741

VB -> C#

  • Convert orderby distinct in linq #736
  • Convert nested Select queries in linq #635
  • Chr converted to Strings.Chr where code page aware conversion needed #745

C# -> VB

  • Guess some common using statements for incomplete fragments #743

[8.3.0] - 2021-07-02

Vsix

  • Support for VS2022

8.2.5

22 Jun 14:37
Compare
Choose a tag to compare

VB -> C#

  • Prevent overrides and overloads appearing on the same property #681
  • Convert Select x = into let x = within Linq #717

8.1.7

16 Aug 10:41
Compare
Choose a tag to compare

[8.1.7] - 2020-08-16

  • Timeout cosmetic operations (formatting/comments) after 15 minutes of inactivity #598

Vsix

  • Options page to adjust timeout

VB -> C#

  • Convert parameterized properties with optional parameters #597
  • Convert bitwise negation #599
  • No longer adds incorrect "base" qualification for virtual method calls #600
  • Don't generate unnecessary properties for WithEvents fields #572
  • Add type conversion where needed for externally declared loop control variable #609
  • Convert string operators in common cases #608
  • Type convert parameterized property in assignment #610

C# -> VB

[8.1.6] - 2020-07-12

Vsix

  • Fix file extension and location of single converted file #589

VB -> C#

  • Correct logic for conversion "objectWithOverloadedEquals Is Nothing" #591
  • Coercing enum to a string now correctly uses its numeric value #590
  • Correct conversion for equality of overloaded types #594
  • Correct conversion when for loop variable is a class member #601
  • Correct conversion when for loop "To" expression is a boolean #602

C# -> VB

VS 16.7 compatibility

04 Jul 17:21
Compare
Choose a tag to compare

Vsix

  • Workaround Visual Studio 16.7+ that was causing VB->CS conversion to fail #586

VB -> C#

  • Handle Option Compare Text case insensitive comparisons in switch statements #579
  • Fix compilation error when switching with enum cases #549
  • Improve numeric casts #580
  • Add ref to conversion of RaiseEvent where needed #584
  • Rename clashing type memvers #420
  • Fix conversion for string implicitly converted to enum #476

C# -> VB

  • Rename explicit method implementations where needed #492
  • Include type information in conversion of default(someType) #486

8.1.4 Minor fixes

26 Jun 15:59
Compare
Choose a tag to compare

Vsix

  • Fixed UnauthorizedAccessException when converting single file/snippet

VB -> C#

  • When converting ReDim Preserve to Array.Resize, "ref" is now added
  • Create delegating method for renamed implementations #443, #444

8.1.3 VB -> CS Improvements

24 May 17:32
Compare
Choose a tag to compare

VB -> C#

  • Improve post-conversion experience for designer files - #569
  • Optimize away some redundant casts and conversions with strings/chars - #388
  • Improve performance of single file conversion - #546
  • Add AsEnumerable where needed in linq "in" clause - #544
  • Remove redundant empty string coalesce in string comparison - #500
  • Convert VB comparison operators - #396
  • Convert Redim Preserve of 1D array to Array.Resize - #501
  • Use C#7.3 compatible null check

8.1.2 VB -> CS improvements

04 May 20:27
Compare
Choose a tag to compare

VB -> C#

  • Improve multi-declaration field conversion for arrays - #559
  • Add parentheses around ternary statement - #565
  • When converting ForEach loop, avoid duplicate variable compilation issue #558
  • Improvements to for loop with missing semantic info - #482
  • Fix logic issue when converting property passed byref - #324
  • Fix logic issue when converting expression passed in byref within conditional expression - #310
  • Added constructors now only added to the relevant type - not other types in the same file
  • Converted non-static field initializers moved to constructor - #281
  • Convert assignments using "Mid" built-in function
  • Improve conversion of array initializer types

VS 2017 hotfix

22 Apr 08:07
9ae68dc
Compare
Choose a tag to compare

Fixes conversion in VS2017

Command line tool release

21 Apr 18:25
Compare
Choose a tag to compare

Command line tool released, get it with dotnet tool install ICSharpCode.CodeConverter.codeconv --global
Known issue: Not compatible with VS2017 (use next release)

VB -> C#

  • Convert files with legacy vb6 file extensions (e.g. .cls, .frm)
  • Fix for converting For...Next...Step loops with a variable step that's sometimes negative #453
  • Fix for abstract readonly/writeonly property conversion including a private accessor
  • Generated parameterless constructors are now public by default
  • Multiple classes in the same file no longer affect each other's constructors
  • Cast expressions are now parenthesized when converted
  • Fix nullref fatal error dialog for delegates with omitted argument types #560

VB -> CS hotfix

31 Mar 15:16
Compare
Choose a tag to compare

VB -> C#

  • Fixes error thrown when converting single file from VB project with resx files