@@ -21,6 +21,7 @@ namespace ICSharpCode.CodeConverter.CSharp
2121 internal class VBToCSProjectContentsConverter : IProjectContentsConverter
2222 {
2323 private readonly ConversionOptions _conversionOptions ;
24+ private readonly bool _useProjectLevelWinformsAdjustments ;
2425 private CSharpCompilation _csharpViewOfVbSymbols ;
2526 private Dictionary < string , string > _designerToResxRelativePath ;
2627 private Project _convertedCsProject ;
@@ -29,9 +30,10 @@ internal class VBToCSProjectContentsConverter : IProjectContentsConverter
2930 private readonly IProgress < ConversionProgress > _progress ;
3031 private readonly CancellationToken _cancellationToken ;
3132
32- public VBToCSProjectContentsConverter ( ConversionOptions conversionOptions , IProgress < ConversionProgress > progress , CancellationToken cancellationToken )
33+ public VBToCSProjectContentsConverter ( ConversionOptions conversionOptions , bool useProjectLevelWinformsAdjustments , IProgress < ConversionProgress > progress , CancellationToken cancellationToken )
3334 {
3435 _conversionOptions = conversionOptions ;
36+ this . _useProjectLevelWinformsAdjustments = useProjectLevelWinformsAdjustments ;
3537 _progress = progress ;
3638 _cancellationToken = cancellationToken ;
3739 }
@@ -44,10 +46,16 @@ public async Task InitializeSourceAsync(Project project)
4446 var cSharpCompilationOptions = CSharpCompiler . CreateCompilationOptions ( ) ;
4547 _convertedCsProject = project . ToProjectFromAnyOptions ( cSharpCompilationOptions , CSharpCompiler . ParseOptions ) ;
4648 _csharpReferenceProject = project . CreateReferenceOnlyProjectFromAnyOptions ( cSharpCompilationOptions , CSharpCompiler . ParseOptions ) ;
47- _csharpViewOfVbSymbols = ( CSharpCompilation ) await _csharpReferenceProject . GetCompilationAsync ( _cancellationToken ) ;
49+ _csharpViewOfVbSymbols = ( CSharpCompilation ) await _csharpReferenceProject . GetCompilationAsync ( _cancellationToken ) ;
4850 _designerToResxRelativePath = project . ReadVbEmbeddedResources ( ) . ToDictionary ( r => r . LastGenOutput , r => r . RelativePath ) ;
49- SourceProject = await project . WithAdditionalDocs ( _designerToResxRelativePath . Values )
50- . WithRenamedMergedMyNamespaceAsync ( _cancellationToken ) ;
51+ SourceProject = await WithProjectLevelWinformsAdjustmentsAsync ( project ) ;
52+ }
53+
54+ private async Task < Project > WithProjectLevelWinformsAdjustmentsAsync ( Project project )
55+ {
56+ if ( ! _useProjectLevelWinformsAdjustments ) return project ;
57+ return await project . WithAdditionalDocs ( _designerToResxRelativePath . Values )
58+ . WithRenamedMergedMyNamespaceAsync ( _cancellationToken ) ;
5159 }
5260
5361 public string LanguageVersion { get { return LangVersion . Latest . ToDisplayString ( ) ; } }
@@ -63,7 +71,8 @@ public async Task<SyntaxNode> SingleFirstPassAsync(Document document)
6371 {
6472 var projDirPath = SourceProject . GetDirectoryPath ( ) ;
6573 var ( project , docIds ) = _convertedCsProject . WithDocuments ( firstPassResults . Select ( r => r . WithTargetPath ( GetTargetPath ( projDirPath , r ) ) ) . ToArray ( ) ) ;
66- return ( await project . RenameMergedNamespacesAsync ( _cancellationToken ) , docIds ) ;
74+ if ( _useProjectLevelWinformsAdjustments ) project = await project . RenameMergedNamespacesAsync ( _cancellationToken ) ;
75+ return ( project , docIds ) ;
6776 }
6877
6978 private string GetTargetPath ( string projDirPath , WipFileConversion < SyntaxNode > r )
0 commit comments