@@ -53,6 +53,7 @@ public CodeConversion(IAsyncServiceProvider serviceProvider,
5353 public async Task ConvertProjectsAsync < TLanguageConversion > ( IReadOnlyCollection < Project > selectedProjects , CancellationToken cancellationToken ) where TLanguageConversion : ILanguageConversion , new ( )
5454 {
5555 try {
56+ await EnsureBuiltAsync ( ) ;
5657 await _joinableTaskFactory . RunAsync ( async ( ) => {
5758 var convertedFiles = ConvertProjectUnhandled < TLanguageConversion > ( selectedProjects , cancellationToken ) ;
5859 await WriteConvertedFilesAndShowSummaryAsync ( convertedFiles ) ;
@@ -67,6 +68,7 @@ await _joinableTaskFactory.RunAsync(async () => {
6768 public async Task ConvertDocumentAsync < TLanguageConversion > ( string documentFilePath , Span selected , CancellationToken cancellationToken ) where TLanguageConversion : ILanguageConversion , new ( )
6869 {
6970 try {
71+ await EnsureBuiltAsync ( ) ;
7072 var conversionResult = await _joinableTaskFactory . RunAsync ( async ( ) => {
7173 var result = await ConvertDocumentUnhandledAsync < TLanguageConversion > ( documentFilePath , selected , cancellationToken ) ;
7274 await WriteConvertedFilesAndShowSummaryAsync ( new [ ] { result } . ToAsyncEnumerable ( ) ) ;
@@ -85,6 +87,15 @@ await _joinableTaskFactory.RunAsync(async () => {
8587 }
8688 }
8789
90+ /// <remarks>
91+ /// https://github.com/icsharpcode/CodeConverter/issues/592
92+ /// https://github.com/dotnet/roslyn/issues/6615
93+ /// </remarks>
94+ private async Task EnsureBuiltAsync ( )
95+ {
96+ await VisualStudioInteraction . EnsureBuiltAsync ( m => _outputWindow . WriteToOutputWindowAsync ( m ) ) ;
97+ }
98+
8899 private static async Task SetClipboardTextOnUiThreadAsync ( string conversionResultConvertedCode )
89100 {
90101 await ThreadHelper . JoinableTaskFactory . SwitchToMainThreadAsync ( ) ;
0 commit comments