diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/App.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/App.csproj
new file mode 100644
index 000000000..2df913261
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/App.csproj
@@ -0,0 +1,32 @@
+
+
+
+
+ Exe
+ net451;netcoreapp1.0
+
+
+
+
+
+ 1.0.0-alpha-20161104-2
+ All
+
+
+
+
+ 1.0.1
+
+
+
+
+
+
+ $(DefineConstants);NETCOREAPP1_0
+
+
+ $(DefineConstants);NET451
+
+
+
+
\ No newline at end of file
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/Program.cs b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/Program.cs
new file mode 100644
index 000000000..8d6e7d1db
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/App/Program.cs
@@ -0,0 +1,21 @@
+using NSLib1;
+using NSLib3;
+
+namespace ConsoleApplication
+{
+ public class Program
+ {
+ public static void Main(string[] args)
+ {
+#if NETCOREAPP1_0
+ Lib1.HelloNCA();
+ Lib3.HelloNCA();
+#endif
+
+#if NET451
+ Lib1.HelloNet451();
+ Lib3.HelloNet451();
+#endif
+ }
+ }
+}
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.cs b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.cs
new file mode 100644
index 000000000..7250d586f
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.cs
@@ -0,0 +1,24 @@
+using System;
+using NSLib2;
+
+namespace NSLib1
+{
+ public class Lib1
+ {
+#if NETCOREAPP1_0
+ public static void HelloNCA()
+ {
+ Console.WriteLine("Hello World from Lib1! (netcoreapp)");
+ Lib2.HelloNCA();
+ }
+#endif
+
+#if NET451
+ public static void HelloNet451()
+ {
+ Console.WriteLine("Hello World from Lib1! (net45)");
+ Lib2.HelloNet451();
+ }
+#endif
+ }
+}
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.csproj
new file mode 100644
index 000000000..3466eb925
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib1/Lib1.csproj
@@ -0,0 +1,29 @@
+
+
+
+
+ Library
+ net451;netcoreapp1.0
+
+
+
+
+
+ 1.0.0-alpha-20161104-2
+ All
+
+
+
+
+ 1.0.1
+
+
+
+ $(DefineConstants);NETCOREAPP1_0
+
+
+ $(DefineConstants);NET451
+
+
+
+
\ No newline at end of file
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.cs b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.cs
new file mode 100644
index 000000000..9452473dc
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.cs
@@ -0,0 +1,24 @@
+using System;
+using NSLib4;
+
+namespace NSLib2
+{
+ public class Lib2
+ {
+#if NETCOREAPP1_0
+ public static void HelloNCA()
+ {
+ Console.WriteLine("Hello World from Lib2! (netcoreapp)");
+ Lib4.HelloNCA();
+ }
+#endif
+
+#if NET451
+ public static void HelloNet451()
+ {
+ Console.WriteLine("Hello World from Lib2! (net45)");
+ Lib4.HelloNet451();
+ }
+#endif
+ }
+}
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.csproj
new file mode 100644
index 000000000..e4d8997f8
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib2/Lib2.csproj
@@ -0,0 +1,36 @@
+
+
+
+
+ Library
+ net451;netcoreapp1.0
+
+
+
+
+
+ 1.0.0-alpha-20161104-2
+ All
+
+
+
+
+ 1.0.1
+
+
+
+
+
+
+
+
+
+
+ $(DefineConstants);NETCOREAPP1_0
+
+
+ $(DefineConstants);NET451
+
+
+
+
\ No newline at end of file
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.cs b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.cs
new file mode 100644
index 000000000..b86a60de4
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace NSLib3
+{
+ public class Lib3
+ {
+#if NETCOREAPP1_0
+ public static void HelloNCA()
+ {
+ Console.WriteLine("Hello World from Lib3! (netcoreapp)");
+ }
+#endif
+
+#if NET451
+ public static void HelloNet451()
+ {
+ Console.WriteLine("Hello World from Lib3! (net45)");
+ }
+#endif
+ }
+}
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.csproj
new file mode 100644
index 000000000..3466eb925
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib3/Lib3.csproj
@@ -0,0 +1,29 @@
+
+
+
+
+ Library
+ net451;netcoreapp1.0
+
+
+
+
+
+ 1.0.0-alpha-20161104-2
+ All
+
+
+
+
+ 1.0.1
+
+
+
+ $(DefineConstants);NETCOREAPP1_0
+
+
+ $(DefineConstants);NET451
+
+
+
+
\ No newline at end of file
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.cs b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.cs
new file mode 100644
index 000000000..d993cc499
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.cs
@@ -0,0 +1,21 @@
+using System;
+
+namespace NSLib4
+{
+ public class Lib4
+ {
+#if NETCOREAPP1_0
+ public static void HelloNCA()
+ {
+ Console.WriteLine("Hello World from Lib4! (netcoreapp)");
+ }
+#endif
+
+#if NET451
+ public static void HelloNet451()
+ {
+ Console.WriteLine("Hello World from Lib4! (net45)");
+ }
+#endif
+ }
+}
diff --git a/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.csproj b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.csproj
new file mode 100644
index 000000000..76b8b884d
--- /dev/null
+++ b/TestAssets/NonRestoredTestProjects/DotnetAddP2PProjects/Lib4/Lib4.csproj
@@ -0,0 +1,32 @@
+
+
+
+
+ Library
+ net451;netcoreapp1.0
+
+
+
+
+
+ 1.0.0-alpha-20161104-2
+ All
+
+
+
+
+ 1.0.1
+
+
+
+
+
+
+ $(DefineConstants);NETCOREAPP1_0
+
+
+ $(DefineConstants);NET451
+
+
+
+
\ No newline at end of file
diff --git a/src/dotnet/commands/dotnet-add-p2p/Program.cs b/src/dotnet/commands/dotnet-add-p2p/Program.cs
index 605dd863c..611e5ee7d 100644
--- a/src/dotnet/commands/dotnet-add-p2p/Program.cs
+++ b/src/dotnet/commands/dotnet-add-p2p/Program.cs
@@ -129,12 +129,18 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToProjectReference
public static string GetFrameworkConditionString(string framework)
{
+ if (string.IsNullOrEmpty(framework))
+ {
+ return null;
+ }
+
return $" '$(TargetFramework)' == '{framework}' ";
}
public static Func FrameworkPred(string framework) where T : ProjectElement
{
- if (string.IsNullOrEmpty(framework))
+ string conditionStr = GetFrameworkConditionString(framework);
+ if (conditionStr == null)
{
return (ig) => {
var condChain = ig.ConditionChain();
@@ -142,7 +148,7 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToProjectReference
};
}
- string conditionStr = GetFrameworkConditionString(framework).Trim();
+ conditionStr = conditionStr.Trim();
return (ig) => {
var condChain = ig.ConditionChain();
return condChain.Count == 1 && condChain.First().Trim() == conditionStr;
@@ -193,7 +199,12 @@ namespace Microsoft.DotNet.Tools.Add.ProjectToProjectReference
}
ProjectItemGroupElement ret = root.CreateItemGroupElement();
- ret.Condition = GetFrameworkConditionString(framework);
+ string condStr = GetFrameworkConditionString(framework);
+ if (condStr != null)
+ {
+ ret.Condition = condStr;
+ }
+
root.AppendChild(ret);
return ret;
}