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);