diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/Program.cs b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/Program.cs new file mode 100755 index 000000000..51233cffa --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace ConsoleApplication +{ + public class Program + { + public static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/project.json b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/project.json new file mode 100755 index 000000000..a93ee629a --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/ProjectB/project.json @@ -0,0 +1,23 @@ +{ + "version": "1.0.0-*", + "buildOptions": { + "debugType": "portable", + "emitEntryPoint": true + }, + "dependencies": { + "ProjectA": { + "target": "project" + } + }, + "frameworks": { + "netcoreapp1.0": { + "dependencies": { + "Microsoft.NETCore.App": { + "type": "platform", + "version": "1.0.0" + } + }, + "imports": "dnxcore50" + } + } +} diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/backup/src/ProjectA/project.json b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/backup/src/ProjectA/project.json new file mode 100755 index 000000000..ce67b3a46 --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/backup/src/ProjectA/project.json @@ -0,0 +1,19 @@ +{ + "version": "1.0.0-*", + "buildOptions": { + "debugType": "portable", + "emitEntryPoint": true + }, + "dependencies": {}, + "frameworks": { + "netcoreapp1.0": { + "dependencies": { + "Microsoft.NETCore.App": { + "type": "platform", + "version": "1.0.0" + } + }, + "imports": "dnxcore50" + } + } +} diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/global.json b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/global.json new file mode 100644 index 000000000..b0323e428 --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/global.json @@ -0,0 +1,3 @@ +{ + "projects": [ "src" ] +} \ No newline at end of file diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/Program.cs b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/Program.cs new file mode 100755 index 000000000..51233cffa --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/Program.cs @@ -0,0 +1,12 @@ +using System; + +namespace ConsoleApplication +{ + public class Program + { + public static void Main(string[] args) + { + Console.WriteLine("Hello World!"); + } + } +} diff --git a/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj new file mode 100755 index 000000000..e8474ecd4 --- /dev/null +++ b/TestAssets/NonRestoredTestProjects/PJHalfMigrated/src/ProjectA/ProjectA.csproj @@ -0,0 +1,13 @@ + + + + netcoreapp1.0 + portable + ProjectA + Exe + ProjectA + $(PackageTargetFallback);dnxcore50 + 1.0.3 + + + diff --git a/TestAssets/TestProjects/TestAppDependencyGraph/global.json b/TestAssets/TestProjects/TestAppDependencyGraph/global.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/TestAssets/TestProjects/TestAppDependencyGraph/global.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/TestAssets/TestProjects/TestAppWithUnqualifiedDependencies/global.json b/TestAssets/TestProjects/TestAppWithUnqualifiedDependencies/global.json new file mode 100644 index 000000000..9e26dfeeb --- /dev/null +++ b/TestAssets/TestProjects/TestAppWithUnqualifiedDependencies/global.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/src/Microsoft.DotNet.ProjectJsonMigration/ProjectDependencyFinder.cs b/src/Microsoft.DotNet.ProjectJsonMigration/ProjectDependencyFinder.cs index d8332258a..976cc8502 100644 --- a/src/Microsoft.DotNet.ProjectJsonMigration/ProjectDependencyFinder.cs +++ b/src/Microsoft.DotNet.ProjectJsonMigration/ProjectDependencyFinder.cs @@ -230,10 +230,10 @@ namespace Microsoft.DotNet.ProjectJsonMigration projectSearchPaths.Add(projectRootDirectory); var globalPaths = GetGlobalPaths(projectRootDirectory); - projectSearchPaths = projectSearchPaths.Union(globalPaths).ToList(); + projectSearchPaths = globalPaths.Union(projectSearchPaths).ToList(); var solutionPaths = GetSolutionPaths(slnFile); - projectSearchPaths = projectSearchPaths.Union(solutionPaths).ToList(); + projectSearchPaths = solutionPaths.Union(projectSearchPaths).ToList(); var projects = new Dictionary(StringComparer.Ordinal); @@ -328,11 +328,16 @@ namespace Microsoft.DotNet.ProjectJsonMigration var projectJSONFilePath = Path.Combine(projectDirectory.FullName, "project.json"); var csProjFilePath = Path.Combine(projectDirectory.FullName, $"{projectDirectory.Name}.csproj"); - if (File.Exists(projectJSONFilePath) || File.Exists(csProjFilePath)) + if (File.Exists(projectJSONFilePath)) { var project = new ProjectDependency(projectDirectory.Name, projectJSONFilePath); projects.Add(project); } + else if (File.Exists(csProjFilePath)) + { + var project = new ProjectDependency(projectDirectory.Name, csProjFilePath); + projects.Add(project); + } } internal static List GetGlobalPaths(string rootPath) diff --git a/src/dotnet/commands/dotnet-test/LocalizableStrings.cs b/src/dotnet/commands/dotnet-test/LocalizableStrings.cs index 16159aa0f..0f69a5cc8 100644 --- a/src/dotnet/commands/dotnet-test/LocalizableStrings.cs +++ b/src/dotnet/commands/dotnet-test/LocalizableStrings.cs @@ -55,8 +55,5 @@ public const string RunSettingsArgsHelpText = @"Any extra commandline runsettings arguments that should be passed to vstest. See 'dotnet vstest --help' for available options. Example: -- RunConfiguration.ResultsDirectory=""C:\users\user\desktop\Results Directory"" MSTest.DeploymentEnabled=false"; - - public const string CmdResultsDirectoryDescription = @"The test results directory will be created in the specified path if it does not exist. - Example: --results-directory "; } } diff --git a/src/dotnet/commands/dotnet-test/Program.cs b/src/dotnet/commands/dotnet-test/Program.cs index 26a57f494..89d0c3595 100644 --- a/src/dotnet/commands/dotnet-test/Program.cs +++ b/src/dotnet/commands/dotnet-test/Program.cs @@ -83,11 +83,6 @@ namespace Microsoft.DotNet.Tools.Test LocalizableStrings.CmdNoBuildDescription, CommandOptionType.NoValue); - var resultsDirectoryOption = cmd.Option( - "-r|--results-directory", - LocalizableStrings.CmdResultsDirectoryDescription, - CommandOptionType.SingleValue); - CommandOption verbosityOption = MSBuildForwardingApp.AddVerbosityOption(cmd); cmd.OnExecute(() => @@ -134,11 +129,6 @@ namespace Microsoft.DotNet.Tools.Test msbuildArgs.Add($"/p:TargetFramework={frameworkOption.Value()}"); } - if (resultsDirectoryOption.HasValue()) - { - msbuildArgs.Add($"/p:VSTestResultsDirectory={resultsDirectoryOption.Value()}"); - } - if (outputOption.HasValue()) { msbuildArgs.Add($"/p:OutputPath={outputOption.Value()}"); diff --git a/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigrateProjectDependencies.cs b/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigrateProjectDependencies.cs index 028bda3a8..cbfb015a4 100644 --- a/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigrateProjectDependencies.cs +++ b/test/Microsoft.DotNet.ProjectJsonMigration.Tests/Rules/GivenThatIWantToMigrateProjectDependencies.cs @@ -302,6 +302,27 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests item => item.ItemType == "ProjectReference" && item.Include == projectReferenceInclude); } + [Fact] + public void ItDoesNotReferenceTheProjectUnderBackupWhenMigratingAPartiallyMigratedStructure() + { + var testAssetsManager = GetTestGroupTestAssetsManager("NonRestoredTestProjects"); + var solutionDirectory = testAssetsManager.CreateTestInstance("PJHalfMigrated").Path; + + var appDirectory = Path.Combine(solutionDirectory, "ProjectB"); + + var projectContext = ProjectContext.Create(appDirectory, FrameworkConstants.CommonFrameworks.NetCoreApp10); + var mockProj = ProjectRootElement.Create(); + var testSettings = MigrationSettings.CreateMigrationSettingsTestHook(appDirectory, appDirectory, mockProj, null); + var testInputs = new MigrationRuleInputs(new[] {projectContext}, mockProj, mockProj.AddItemGroup(), + mockProj.AddPropertyGroup()); + new MigrateProjectDependenciesRule().Apply(testSettings, testInputs); + + var projectReferences = mockProj.Items.Where( + item => item.ItemType.Equals("ProjectReference", StringComparison.Ordinal)); + projectReferences.Should().ContainSingle(); + projectReferences.Single().Include.Should().Be(Path.Combine("..", "src", "ProjectA", "ProjectA.csproj")); + } + private ProjectRootElement MigrateProject(string solution, string project) { return MigrateProject(solution, project, FrameworkConstants.CommonFrameworks.NetCoreApp10);