diff --git a/CodeConverter/CSharp/CommonConversions.cs b/CodeConverter/CSharp/CommonConversions.cs index 7c5c9a2cf..f1e7229ff 100644 --- a/CodeConverter/CSharp/CommonConversions.cs +++ b/CodeConverter/CSharp/CommonConversions.cs @@ -598,7 +598,7 @@ public CSSyntax.IdentifierNameSyntax GetRetVariableNameOrNull(VBSyntax.MethodBlo var flow = SemanticModel.AnalyzeDataFlow(node.Statements.First(), node.Statements.Last()); if (flow.Succeeded) { - assignsToMethodNameVariable = flow.ReadInside.Any(equalsMethodName) || flow.WrittenInside.Any(equalsMethodName); + assignsToMethodNameVariable = flow.ReadInsideSafe().Any(equalsMethodName) || flow.WrittenInside.Any(equalsMethodName); } } diff --git a/CodeConverter/CSharp/DataFlowAnalysisExtensions.cs b/CodeConverter/CSharp/DataFlowAnalysisExtensions.cs new file mode 100644 index 000000000..41a907c69 --- /dev/null +++ b/CodeConverter/CSharp/DataFlowAnalysisExtensions.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace ICSharpCode.CodeConverter.CSharp; +internal static class DataFlowAnalysisExtensions +{ + /// + /// Accesses the second time in case of exception. + /// This is a workaround for a bug present in Roslyn up to version 4.8.0 + /// (https://github.com/dotnet/roslyn/issues/71115) + /// + public static System.Collections.Immutable.ImmutableArray ReadInsideSafe(this DataFlowAnalysis dataFlow) + { + try { + return dataFlow.ReadInside; + } catch { + return dataFlow.ReadInside; + } + } +} diff --git a/CodeConverter/CSharp/DefiniteAssignmentAnalyzer.cs b/CodeConverter/CSharp/DefiniteAssignmentAnalyzer.cs index 931a68ac4..66def1f57 100644 --- a/CodeConverter/CSharp/DefiniteAssignmentAnalyzer.cs +++ b/CodeConverter/CSharp/DefiniteAssignmentAnalyzer.cs @@ -5,7 +5,7 @@ internal static class DefiniteAssignmentAnalyzer public static bool IsDefinitelyAssignedBeforeRead(ISymbol localSymbol, DataFlowAnalysis methodFlow) { - if (!methodFlow.ReadInside.Contains(localSymbol)) return true; + if (!methodFlow.ReadInsideSafe().Contains(localSymbol)) return true; var unassignedVariables = methodFlow.GetVbUnassignedVariables(); return unassignedVariables != null && !unassignedVariables.Contains(localSymbol, SymbolEqualityComparer.IncludeNullability); } diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/CSharpDllWithRefReturnIndexer.csproj b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/CSharpDllWithRefReturnIndexer.csproj new file mode 100644 index 000000000..66d24209a --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/CSharpDllWithRefReturnIndexer.csproj @@ -0,0 +1,48 @@ + + + + + Debug + AnyCPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445} + Library + Properties + CSharpDllWithRefReturnIndexer + CSharpDllWithRefReturnIndexer + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/Properties/AssemblyInfo.cs b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..abaa49fd2 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("CSharpDllWithRefReturnIndexer")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CSharpDllWithRefReturnIndexer")] +[assembly: AssemblyCopyright("Copyright © 2023")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("e6a02631-ff88-4fde-a356-1ec4ca397445")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/SpecialListWithRefReturnIndexer.cs b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/SpecialListWithRefReturnIndexer.cs new file mode 100644 index 000000000..0efeb6175 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/CSharpDllWithRefReturnIndexer/SpecialListWithRefReturnIndexer.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSharpDllWithRefReturnIndexer +{ + public class SpecialListWithRefReturnIndexer + { + private T dummy; + public ref T this[int i] { + get { + return ref dummy; + } + } + } +} diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/CharacterizationTestSolution.sln b/Tests/TestData/MultiFileCharacterization/SourceFiles/CharacterizationTestSolution.sln index 0b3b638e7..2c7b51c06 100644 --- a/Tests/TestData/MultiFileCharacterization/SourceFiles/CharacterizationTestSolution.sln +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/CharacterizationTestSolution.sln @@ -26,6 +26,10 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Prefix.VbLibrary", "Prefix. EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VisualBasicConsoleApp", "ConsoleApp1\VisualBasicConsoleApp.vbproj", "{C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpDllWithRefReturnIndexer", "CSharpDllWithRefReturnIndexer\CSharpDllWithRefReturnIndexer.csproj", "{E6A02631-FF88-4FDE-A356-1EC4CA397445}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VbNetUsingCSharpRefReturnIndexer", "VbNetUsingCSharpRefReturnIndexer\VbNetUsingCSharpRefReturnIndexer.vbproj", "{FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -68,6 +72,14 @@ Global {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Debug|Any CPU.Build.0 = Debug|Any CPU {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Release|Any CPU.ActiveCfg = Release|Any CPU {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Release|Any CPU.Build.0 = Release|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Release|Any CPU.Build.0 = Release|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/Class1.vb b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/Class1.vb new file mode 100644 index 000000000..4b2f72ca7 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/Class1.vb @@ -0,0 +1,18 @@ +Public Class Class1 + Private Structure SomeStruct + Dim SomeField As Integer + Dim Text As String + End Structure + + Dim lst As New CSharpDllWithRefReturnIndexer.SpecialListWithRefReturnIndexer(Of SomeStruct) + + Sub S() + Dim i As Integer + Dim s As String + + With lst(i) + .SomeField = 5 + s = .Text + End With + End Sub +End Class diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.Designer.vb b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.Designer.vb new file mode 100644 index 000000000..88dd01c78 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.myapp b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.myapp new file mode 100644 index 000000000..758895def --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/AssemblyInfo.vb b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/AssemblyInfo.vb new file mode 100644 index 000000000..182c7ceed --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.Designer.vb b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.Designer.vb new file mode 100644 index 000000000..8470d92be --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("VbNetUsingCSharpRefReturnIndexer.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.resx b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.Designer.vb b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.Designer.vb new file mode 100644 index 000000000..faa98b237 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.VbNetUsingCSharpRefReturnIndexer.My.MySettings + Get + Return Global.VbNetUsingCSharpRefReturnIndexer.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.settings b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.settings new file mode 100644 index 000000000..85b890b3c --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/VbNetUsingCSharpRefReturnIndexer.vbproj b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/VbNetUsingCSharpRefReturnIndexer.vbproj new file mode 100644 index 000000000..5a7078547 --- /dev/null +++ b/Tests/TestData/MultiFileCharacterization/SourceFiles/VbNetUsingCSharpRefReturnIndexer/VbNetUsingCSharpRefReturnIndexer.vbproj @@ -0,0 +1,110 @@ + + + + + Debug + AnyCPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA} + Library + VbNetUsingCSharpRefReturnIndexer + VbNetUsingCSharpRefReturnIndexer + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + VbNetUsingCSharpRefReturnIndexer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + pdbonly + false + true + true + bin\Release\ + VbNetUsingCSharpRefReturnIndexer.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + On + + + Binary + + + Off + + + On + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + {e6a02631-ff88-4fde-a356-1ec4ca397445} + CSharpDllWithRefReturnIndexer + + + + \ No newline at end of file diff --git a/Tests/TestData/MultiFileCharacterization/VBToCSResults/ConvertVbLibraryOnly/CharacterizationTestSolution.sln b/Tests/TestData/MultiFileCharacterization/VBToCSResults/ConvertVbLibraryOnly/CharacterizationTestSolution.sln index 514ea32ee..72263d11b 100644 --- a/Tests/TestData/MultiFileCharacterization/VBToCSResults/ConvertVbLibraryOnly/CharacterizationTestSolution.sln +++ b/Tests/TestData/MultiFileCharacterization/VBToCSResults/ConvertVbLibraryOnly/CharacterizationTestSolution.sln @@ -26,6 +26,10 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Prefix.VbLibrary", "Prefix. EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VisualBasicConsoleApp", "ConsoleApp1\VisualBasicConsoleApp.vbproj", "{C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpDllWithRefReturnIndexer", "CSharpDllWithRefReturnIndexer\CSharpDllWithRefReturnIndexer.csproj", "{E6A02631-FF88-4FDE-A356-1EC4CA397445}" +EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VbNetUsingCSharpRefReturnIndexer", "VbNetUsingCSharpRefReturnIndexer\VbNetUsingCSharpRefReturnIndexer.vbproj", "{FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -68,6 +72,14 @@ Global {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Debug|Any CPU.Build.0 = Debug|Any CPU {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Release|Any CPU.ActiveCfg = Release|Any CPU {C69D27C1-FF4E-43CB-BB0F-9BF811BF0F81}.Release|Any CPU.Build.0 = Release|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6A02631-FF88-4FDE-A356-1EC4CA397445}.Release|Any CPU.Build.0 = Release|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FAA9F1FC-C0BC-41DC-8CC7-D8D1DCBB6FEA}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Tests/Tests.csproj b/Tests/Tests.csproj index 8a5af6fb6..9a90eb3ef 100644 --- a/Tests/Tests.csproj +++ b/Tests/Tests.csproj @@ -30,12 +30,12 @@ - - - - - - + + + + + +