From f8de8d5a809ba0ee7755884051956a0a3c25653e Mon Sep 17 00:00:00 2001 From: Justin Goshi Date: Thu, 5 Jan 2017 12:04:57 -1000 Subject: [PATCH] dotnet add uses ProjectTypeGuid or DefaultProjectTypeGuid (#5218) * dotnet add uses ProjectTypeGuid or DefaultProjectTypeGuid * Create ProjectInstanceExtensions per PR comments --- .../TestLibrary/project.json | 9 +- .../TestLibrary/project.json | 9 +- .../SlnFileWithNoProjectReferences.sln | 18 +++ .../App.sln | 18 +++ .../CSharpProject/App.config | 6 + .../CSharpProject/CSharpProject.csproj | 52 ++++++++ .../CSharpProject/Program.cs | 15 +++ .../CSharpProject/Properties/AssemblyInfo.cs | 36 ++++++ .../App.sln | 18 +++ .../FSharpProject/App.config | 6 + .../FSharpProject/AssemblyInfo.fs | 41 ++++++ .../FSharpProject/FSharpProject.fsproj | 81 ++++++++++++ .../FSharpProject/Program.fs | 7 ++ .../FSharpProject/packages.config | 4 + .../App.sln | 18 +++ .../UnknownProject/UnknownProject.unknownproj | 5 + .../App.sln | 18 +++ .../UnknownProject/UnknownProject.unknownproj | 6 + .../App.sln | 18 +++ .../UnknownProject/UnknownProject.unknownproj | 6 + .../App.sln | 18 +++ .../VBProject/App.config | 6 + .../VBProject/Module1.vb | 7 ++ .../My Project/Application.Designer.vb | 13 ++ .../VBProject/My Project/Application.myapp | 10 ++ .../VBProject/My Project/AssemblyInfo.vb | 35 ++++++ .../My Project/Resources.Designer.vb | 62 ++++++++++ .../VBProject/My Project/Resources.resx | 117 ++++++++++++++++++ .../VBProject/My Project/Settings.Designer.vb | 73 +++++++++++ .../VBProject/My Project/Settings.settings | 7 ++ .../VBProject/VBProject.vbproj | 109 ++++++++++++++++ .../ProjectTypeGuids.cs | 1 - src/dotnet/CommonLocalizableStrings.cs | 1 + src/dotnet/ProjectInstanceExtensions.cs | 48 +++++++ .../dotnet-add/dotnet-add-proj/Program.cs | 51 +++----- .../GivenDotnetAddProj.cs | 60 +++++++++ .../GivenThatIWantToMigrateSolutions.cs | 15 ++- 37 files changed, 964 insertions(+), 60 deletions(-) create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferences/SlnFileWithNoProjectReferences.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/App.config create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/CSharpProject.csproj create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Program.cs create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Properties/AssemblyInfo.cs create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/App.config create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/AssemblyInfo.fs create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/FSharpProject.fsproj create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/Program.fs create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/packages.config create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/UnknownProject/UnknownProject.unknownproj create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/UnknownProject/UnknownProject.unknownproj create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/UnknownProject/UnknownProject.unknownproj create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/App.sln create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/App.config create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/Module1.vb create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.Designer.vb create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.myapp create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/AssemblyInfo.vb create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.Designer.vb create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.resx create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.Designer.vb create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.settings create mode 100644 TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/VBProject.vbproj create mode 100644 src/dotnet/ProjectInstanceExtensions.cs diff --git a/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefs/TestLibrary/project.json b/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefs/TestLibrary/project.json index bdf53dd6e..032754312 100644 --- a/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefs/TestLibrary/project.json +++ b/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefs/TestLibrary/project.json @@ -1,13 +1,6 @@ { "version": "1.0.0-*", - "buildOptions": { - "nowarn": [ - "CS1591" - ], - "additionalArguments": [ - "-highentropyva+" - ] - },"dependencies": { + "dependencies": { "NETStandard.Library": "1.6.0" }, "frameworks": { diff --git a/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefsAndUnrelatedCsproj/TestLibrary/project.json b/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefsAndUnrelatedCsproj/TestLibrary/project.json index bdf53dd6e..032754312 100644 --- a/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefsAndUnrelatedCsproj/TestLibrary/project.json +++ b/TestAssets/NonRestoredTestProjects/PJAppWithSlnAndXprojRefsAndUnrelatedCsproj/TestLibrary/project.json @@ -1,13 +1,6 @@ { "version": "1.0.0-*", - "buildOptions": { - "nowarn": [ - "CS1591" - ], - "additionalArguments": [ - "-highentropyva+" - ] - },"dependencies": { + "dependencies": { "NETStandard.Library": "1.6.0" }, "frameworks": { diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferences/SlnFileWithNoProjectReferences.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferences/SlnFileWithNoProjectReferences.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferences/SlnFileWithNoProjectReferences.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/App.config b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/App.config new file mode 100644 index 000000000..88fa4027b --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/CSharpProject.csproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/CSharpProject.csproj new file mode 100644 index 000000000..2b11fd5a7 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/CSharpProject.csproj @@ -0,0 +1,52 @@ + + + + + Debug + AnyCPU + {AE23AD01-99E0-446F-A5F6-16ADBDD0D1E5} + Exe + CSharpProject + CSharpProject + v4.5.2 + 512 + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Program.cs b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Program.cs new file mode 100644 index 000000000..0760ae741 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Program.cs @@ -0,0 +1,15 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CSharpProject +{ + class Program + { + static void Main(string[] args) + { + } + } +} diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Properties/AssemblyInfo.cs b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/Properties/AssemblyInfo.cs new file mode 100644 index 000000000..9dc33d763 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndCSharpProject/CSharpProject/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("CSharpProject")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("CSharpProject")] +[assembly: AssemblyCopyright("Copyright © 2016")] +[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("ae23ad01-99e0-446f-a5f6-16adbdd0d1e5")] + +// 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/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/App.config b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/App.config new file mode 100644 index 000000000..88fa4027b --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/AssemblyInfo.fs b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/AssemblyInfo.fs new file mode 100644 index 000000000..d8b2c37d6 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/AssemblyInfo.fs @@ -0,0 +1,41 @@ +namespace FSharpProject.AssemblyInfo + +open System.Reflection +open System.Runtime.CompilerServices +open 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. +[] +[] +[] +[] +[] +[] +[] +[] + +// 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. +[] + +// 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: +// [] +[] +[] + +do + () \ No newline at end of file diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/FSharpProject.fsproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/FSharpProject.fsproj new file mode 100644 index 000000000..cad8d59ce --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/FSharpProject.fsproj @@ -0,0 +1,81 @@ + + + + + Debug + AnyCPU + 2.0 + 52161bb2-18bf-4304-87e7-8d7f0c98ccf3 + Exe + FSharpProject + FSharpProject + v4.5.2 + true + 4.4.1.0 + FSharpProject + + + true + full + false + false + bin\$(Configuration)\ + DEBUG;TRACE + 3 + AnyCPU + bin\$(Configuration)\$(AssemblyName).XML + true + + + pdbonly + true + true + bin\$(Configuration)\ + TRACE + 3 + AnyCPU + bin\$(Configuration)\$(AssemblyName).XML + true + + + 11 + + + + + $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets + + + + + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets + + + + + + + + + + + + + + True + + + + + + ..\packages\System.ValueTuple.4.0.0-rc3-24212-01\lib\netstandard1.1\System.ValueTuple.dll + + + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/Program.fs b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/Program.fs new file mode 100644 index 000000000..2bcf7f989 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/Program.fs @@ -0,0 +1,7 @@ +// Learn more about F# at http://fsharp.org +// See the 'F# Tutorial' project for more help. + +[] +let main argv = + printfn "%A" argv + 0 // return an integer exit code diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/packages.config b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/packages.config new file mode 100644 index 000000000..2688d2baf --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndFSharpProject/FSharpProject/packages.config @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/UnknownProject/UnknownProject.unknownproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/UnknownProject/UnknownProject.unknownproj new file mode 100644 index 000000000..8b39c56a6 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProject/UnknownProject/UnknownProject.unknownproj @@ -0,0 +1,5 @@ + + + + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/UnknownProject/UnknownProject.unknownproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/UnknownProject/UnknownProject.unknownproj new file mode 100644 index 000000000..c5e694360 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids/UnknownProject/UnknownProject.unknownproj @@ -0,0 +1,6 @@ + + + + {20E2F8CC-55AA-4705-B10F-7ABA6F107ECE};{130159A9-F047-44B3-88CF-0CF7F02ED50F} + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/UnknownProject/UnknownProject.unknownproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/UnknownProject/UnknownProject.unknownproj new file mode 100644 index 000000000..2615598f1 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid/UnknownProject/UnknownProject.unknownproj @@ -0,0 +1,6 @@ + + + + {130159A9-F047-44B3-88CF-0CF7F02ED50F} + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/App.sln b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/App.sln new file mode 100644 index 000000000..5b61df887 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/App.sln @@ -0,0 +1,18 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26006.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/App.config b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/App.config new file mode 100644 index 000000000..88fa4027b --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/Module1.vb b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/Module1.vb new file mode 100644 index 000000000..5d7e3a343 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/Module1.vb @@ -0,0 +1,7 @@ +Module Module1 + + Sub Main() + + End Sub + +End Module diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.Designer.vb b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.Designer.vb new file mode 100644 index 000000000..88dd01c78 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/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/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.myapp b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.myapp new file mode 100644 index 000000000..e62f1a533 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 2 + true + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/AssemblyInfo.vb b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/AssemblyInfo.vb new file mode 100644 index 000000000..e06141688 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/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/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.Designer.vb b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.Designer.vb new file mode 100644 index 000000000..7b5d7f7fb --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/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("VBProject.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/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.resx b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Resources.resx new file mode 100644 index 000000000..af7dbebba --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/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/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.Designer.vb b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.Designer.vb new file mode 100644 index 000000000..40d08710c --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/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.VBProject.My.MySettings + Get + Return Global.VBProject.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.settings b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.settings new file mode 100644 index 000000000..85b890b3c --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/VBProject.vbproj b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/VBProject.vbproj new file mode 100644 index 000000000..e383214a4 --- /dev/null +++ b/TestAssets/TestProjects/SlnFileWithNoProjectReferencesAndVBProject/VBProject/VBProject.vbproj @@ -0,0 +1,109 @@ + + + + + Debug + AnyCPU + {399CECC0-BEAD-436F-9D5F-BB50EBD683DF} + Exe + VBProject.Module1 + VBProject + VBProject + 512 + Console + v4.5.2 + true + + + AnyCPU + true + full + true + true + bin\Debug\ + VBProject.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + + AnyCPU + pdbonly + false + true + true + bin\Release\ + VBProject.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 + + + + + diff --git a/src/Microsoft.DotNet.Cli.Sln.Internal/ProjectTypeGuids.cs b/src/Microsoft.DotNet.Cli.Sln.Internal/ProjectTypeGuids.cs index 723c5f4f1..547e93eef 100644 --- a/src/Microsoft.DotNet.Cli.Sln.Internal/ProjectTypeGuids.cs +++ b/src/Microsoft.DotNet.Cli.Sln.Internal/ProjectTypeGuids.cs @@ -5,7 +5,6 @@ namespace Microsoft.DotNet.Cli.Sln.Internal { public static class ProjectTypeGuids { - public const string CPSProjectTypeGuid = "{13B669BE-BB05-4DDF-9536-439F39A36129}"; public const string CSharpProjectTypeGuid = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"; public const string SolutionFolderGuid = "{2150E333-8FDC-42A3-9474-1A3956D46DE8}"; } diff --git a/src/dotnet/CommonLocalizableStrings.cs b/src/dotnet/CommonLocalizableStrings.cs index 135029829..754df1cdc 100644 --- a/src/dotnet/CommonLocalizableStrings.cs +++ b/src/dotnet/CommonLocalizableStrings.cs @@ -5,6 +5,7 @@ namespace Microsoft.DotNet.Tools { internal class CommonLocalizableStrings { + public const string UnsupportedProjectType = "Unsupported project type. Please check with your sdk provider."; public const string ProjectAlreadyHasAreference = "Project already has a reference to `{0}`."; public const string ProjectReferenceCouldNotBeFound = "Project reference `{0}` could not be found."; public const string ProjectReferenceRemoved = "Project reference `{0}` removed."; diff --git a/src/dotnet/ProjectInstanceExtensions.cs b/src/dotnet/ProjectInstanceExtensions.cs new file mode 100644 index 000000000..4bbcb5247 --- /dev/null +++ b/src/dotnet/ProjectInstanceExtensions.cs @@ -0,0 +1,48 @@ +// Copyright (c) .NET Foundation and contributors. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Build.Execution; +using System; +using System.Linq; + +namespace Microsoft.DotNet.Tools.Common +{ + public static class ProjectInstanceExtensions + { + public static string GetProjectId(this ProjectInstance projectInstance) + { + var projectGuidProperty = projectInstance.GetPropertyValue("ProjectGuid"); + var projectGuid = string.IsNullOrEmpty(projectGuidProperty) + ? Guid.NewGuid() + : new Guid(projectGuidProperty); + return projectGuid.ToString("B").ToUpper(); + } + + public static string GetProjectTypeGuid(this ProjectInstance projectInstance) + { + string projectTypeGuid = null; + + var projectTypeGuidProperty = projectInstance.GetPropertyValue("ProjectTypeGuid"); + if (!string.IsNullOrEmpty(projectTypeGuidProperty)) + { + projectTypeGuid = projectTypeGuidProperty.Split(';').Last(); + } + else + { + projectTypeGuid = projectInstance.GetPropertyValue("DefaultProjectTypeGuid"); + } + + if (string.IsNullOrEmpty(projectTypeGuid)) + { + //ISSUE: https://github.com/dotnet/sdk/issues/522 + //The real behavior we want (once DefaultProjectTypeGuid support is in) is to throw + //when we cannot find ProjectTypeGuid or DefaultProjectTypeGuid. But for now we + //need the same behavior we had before this change. + //throw new GracefulException(CommonLocalizableStrings.UnsupportedProjectType); + projectTypeGuid = "{13B669BE-BB05-4DDF-9536-439F39A36129}"; // CPS guid + } + + return projectTypeGuid; + } + } +} diff --git a/src/dotnet/commands/dotnet-add/dotnet-add-proj/Program.cs b/src/dotnet/commands/dotnet-add/dotnet-add-proj/Program.cs index f6a57db28..07781a1ba 100644 --- a/src/dotnet/commands/dotnet-add/dotnet-add-proj/Program.cs +++ b/src/dotnet/commands/dotnet-add/dotnet-add-proj/Program.cs @@ -3,6 +3,7 @@ using Microsoft.Build.Construction; using Microsoft.Build.Evaluation; +using Microsoft.Build.Execution; using Microsoft.DotNet.Cli; using Microsoft.DotNet.Cli.Sln.Internal; using Microsoft.DotNet.Cli.Utils; @@ -42,15 +43,12 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToSolution } PathUtility.EnsureAllPathsExist(RemainingArguments, CommonLocalizableStrings.ProjectDoesNotExist); - var relativeProjectPaths = RemainingArguments.Select((p) => - PathUtility.GetRelativePath( - PathUtility.EnsureTrailingSlash(slnFile.BaseDirectory), - Path.GetFullPath(p))).ToList(); + var fullProjectPaths = RemainingArguments.Select((p) => Path.GetFullPath(p)).ToList(); int preAddProjectCount = slnFile.Projects.Count; - foreach (var project in relativeProjectPaths) + foreach (var fullProjectPath in fullProjectPaths) { - AddProject(slnFile, project); + AddProject(slnFile, fullProjectPath); } if (slnFile.Projects.Count > preAddProjectCount) @@ -61,47 +59,30 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToSolution return 0; } - private void AddProject(SlnFile slnFile, string projectPath) + private void AddProject(SlnFile slnFile, string fullProjectPath) { - var projectPathNormalized = PathUtility.GetPathWithDirectorySeparator(projectPath); + var relativeProjectPath = PathUtility.GetRelativePath( + PathUtility.EnsureTrailingSlash(slnFile.BaseDirectory), + fullProjectPath); if (slnFile.Projects.Any((p) => - string.Equals(p.FilePath, projectPathNormalized, StringComparison.OrdinalIgnoreCase))) + string.Equals(p.FilePath, relativeProjectPath, StringComparison.OrdinalIgnoreCase))) { Reporter.Output.WriteLine(string.Format( CommonLocalizableStrings.SolutionAlreadyContainsProject, slnFile.FullPath, - projectPath)); + relativeProjectPath)); } else { - string projectGuidString = null; - if (File.Exists(projectPath)) - { - var projectElement = ProjectRootElement.Open( - projectPath, - new ProjectCollection(), - preserveFormatting: true); - - var projectGuidProperty = projectElement.Properties.Where((p) => - string.Equals(p.Name, "ProjectGuid", StringComparison.OrdinalIgnoreCase)).FirstOrDefault(); - - if (projectGuidProperty != null) - { - projectGuidString = projectGuidProperty.Value; - } - } - - var projectGuid = (projectGuidString == null) - ? Guid.NewGuid() - : new Guid(projectGuidString); + var projectInstance = new ProjectInstance(fullProjectPath); var slnProject = new SlnProject { - Id = projectGuid.ToString("B").ToUpper(), - TypeGuid = ProjectTypeGuids.CPSProjectTypeGuid, - Name = Path.GetFileNameWithoutExtension(projectPath), - FilePath = projectPathNormalized + Id = projectInstance.GetProjectId(), + TypeGuid = projectInstance.GetProjectTypeGuid(), + Name = Path.GetFileNameWithoutExtension(relativeProjectPath), + FilePath = relativeProjectPath }; AddDefaultBuildConfigurations(slnFile, slnProject); @@ -111,7 +92,7 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToSolution slnFile.Projects.Add(slnProject); Reporter.Output.WriteLine( - string.Format(CommonLocalizableStrings.ProjectAddedToTheSolution, projectPath)); + string.Format(CommonLocalizableStrings.ProjectAddedToTheSolution, relativeProjectPath)); } } diff --git a/test/dotnet-add-proj.Tests/GivenDotnetAddProj.cs b/test/dotnet-add-proj.Tests/GivenDotnetAddProj.cs index 1428292e2..4b012c489 100644 --- a/test/dotnet-add-proj.Tests/GivenDotnetAddProj.cs +++ b/test/dotnet-add-proj.Tests/GivenDotnetAddProj.cs @@ -493,6 +493,66 @@ EndGlobal .Should().BeVisuallyEquivalentTo(contentBefore); } + //ISSUE: https://github.com/dotnet/sdk/issues/522 + //[Fact] + public void WhenPassedAnUnknownProjectTypeItFails() + { + var projectDirectory = TestAssets + .Get("SlnFileWithNoProjectReferencesAndUnknownProject") + .CreateInstance() + .WithSourceFiles() + .Root + .FullName; + + var slnFullPath = Path.Combine(projectDirectory, "App.sln"); + var contentBefore = File.ReadAllText(slnFullPath); + + var projectToAdd = Path.Combine("UnknownProject", "UnknownProject.unknownproj"); + var cmd = new DotnetCommand() + .WithWorkingDirectory(projectDirectory) + .ExecuteWithCapturedOutput($"add App.sln project {projectToAdd}"); + cmd.Should().Fail(); + cmd.StdErr.Should().BeVisuallyEquivalentTo("Unsupported project type. Please check with your sdk provider."); + + File.ReadAllText(slnFullPath) + .Should().BeVisuallyEquivalentTo(contentBefore); + } + + [Theory] + //ISSUE: https://github.com/dotnet/sdk/issues/522 + //[InlineData("SlnFileWithNoProjectReferencesAndCSharpProject", "CSharpProject", "CSharpProject.csproj", ProjectTypeGuids.CSharpProjectTypeGuid)] + //[InlineData("SlnFileWithNoProjectReferencesAndFSharpProject", "FSharpProject", "FSharpProject.fsproj", "{F2A71F9B-5D33-465A-A702-920D77279786}")] + //[InlineData("SlnFileWithNoProjectReferencesAndVBProject", "VBProject", "VBProject.vbproj", "{F184B08F-C81C-45F6-A57F-5ABD9991F28F}")] + [InlineData("SlnFileWithNoProjectReferencesAndUnknownProjectWithSingleProjectTypeGuid", "UnknownProject", "UnknownProject.unknownproj", "{130159A9-F047-44B3-88CF-0CF7F02ED50F}")] + [InlineData("SlnFileWithNoProjectReferencesAndUnknownProjectWithMultipleProjectTypeGuids", "UnknownProject", "UnknownProject.unknownproj", "{130159A9-F047-44B3-88CF-0CF7F02ED50F}")] + public void WhenPassedAProjectItAddsCorrectProjectTypeGuid( + string testAsset, + string projectDir, + string projectName, + string expectedTypeGuid) + { + var projectDirectory = TestAssets + .Get(testAsset) + .CreateInstance() + .WithSourceFiles() + .Root + .FullName; + + var projectToAdd = Path.Combine(projectDir, projectName); + var cmd = new DotnetCommand() + .WithWorkingDirectory(projectDirectory) + .ExecuteWithCapturedOutput($"add App.sln project {projectToAdd}"); + cmd.Should().Pass(); + cmd.StdOut.Should().Be($"Project `{projectToAdd}` added to the solution."); + cmd.StdErr.Should().BeEmpty(); + + var slnFile = SlnFile.Read(Path.Combine(projectDirectory, "App.sln")); + var nonSolutionFolderProjects = slnFile.Projects.Where( + p => p.TypeGuid != ProjectTypeGuids.SolutionFolderGuid); + nonSolutionFolderProjects.Count().Should().Be(1); + nonSolutionFolderProjects.Single().TypeGuid.Should().Be(expectedTypeGuid); + } + private string GetExpectedSlnContents( string slnPath, string slnTemplate, diff --git a/test/dotnet-migrate.Tests/GivenThatIWantToMigrateSolutions.cs b/test/dotnet-migrate.Tests/GivenThatIWantToMigrateSolutions.cs index f54fc2b98..08fdfca37 100644 --- a/test/dotnet-migrate.Tests/GivenThatIWantToMigrateSolutions.cs +++ b/test/dotnet-migrate.Tests/GivenThatIWantToMigrateSolutions.cs @@ -18,8 +18,7 @@ namespace Microsoft.DotNet.Migration.Tests { MigrateAndBuild( "NonRestoredTestProjects", - "PJAppWithSlnAndXprojRefs", - ProjectTypeGuids.CSharpProjectTypeGuid); + "PJAppWithSlnAndXprojRefs"); } [Fact] @@ -27,8 +26,7 @@ namespace Microsoft.DotNet.Migration.Tests { MigrateAndBuild( "NonRestoredTestProjects", - "PJAppWithSlnAndXprojRefsAndUnrelatedCsproj", - ProjectTypeGuids.CSharpProjectTypeGuid); + "PJAppWithSlnAndXprojRefsAndUnrelatedCsproj"); } [Fact] @@ -36,11 +34,10 @@ namespace Microsoft.DotNet.Migration.Tests { MigrateAndBuild( "NonRestoredTestProjects", - "PJAppWithSlnAndXprojRefThatRefsCsprojWhereSlnDoesNotRefCsproj", - ProjectTypeGuids.CPSProjectTypeGuid); + "PJAppWithSlnAndXprojRefThatRefsCsprojWhereSlnDoesNotRefCsproj"); } - private void MigrateAndBuild(string groupName, string projectName, string subdirProjectTypeGuid) + private void MigrateAndBuild(string groupName, string projectName) { var projectDirectory = TestAssets .Get(groupName, projectName) @@ -81,7 +78,9 @@ namespace Microsoft.DotNet.Migration.Tests slnProject.FilePath.Should().Be(Path.Combine("..", "TestLibrary", "TestLibrary.csproj")); slnProject = nonSolutionFolderProjects.Where((p) => p.Name == "subdir").Single(); - slnProject.TypeGuid.Should().Be(subdirProjectTypeGuid); + //ISSUE: https://github.com/dotnet/sdk/issues/522 + //Once we have that change migrate will always burn in the C# guid + //slnProject.TypeGuid.Should().Be(ProjectTypeGuids.CSharpProjectTypeGuid); slnProject.FilePath.Should().Be(Path.Combine("src", "subdir", "subdir.csproj")); } }