diff --git a/integrationtests/Paket.IntegrationTests/PackSpecs.fs b/integrationtests/Paket.IntegrationTests/PackSpecs.fs index e4037c4492..b1bc4ab4f5 100644 --- a/integrationtests/Paket.IntegrationTests/PackSpecs.fs +++ b/integrationtests/Paket.IntegrationTests/PackSpecs.fs @@ -392,6 +392,120 @@ let ``#1816 pack localized when satellite dll is missing`` () = CleanDir rootPath +[] +let ``#1848 single template without include-referenced-projects`` () = + let scenario = "i001848-pack-single-template-wo-incl-flag" + let rootPath = scenarioTempPath scenario + let outPath = Path.Combine(rootPath, "out") + let templatePath = Path.Combine(rootPath, "projectA", "paket.template") + paket ("pack --template " + templatePath + " \"" + outPath + "\"") scenario |> ignore + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectA") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> shouldBeEmpty + + ZipFile.ExtractToDirectory(Path.Combine(outPath, "projectA.1.0.0.0.nupkg"), outPath) + Path.Combine(outPath, "lib", "net45", "projectB.dll") |> checkFileExists + + CleanDir rootPath + +[] +let ``#1848 single template with include-referenced-projects`` () = + let scenario = "i001848-pack-single-template-with-incl-flag" + let rootPath = scenarioTempPath scenario + let outPath = Path.Combine(rootPath, "out") + let templatePath = Path.Combine(rootPath, "projectA", "paket.template") + paket ("pack --include-referenced-projects --template " + templatePath + " \"" + outPath + "\"") scenario |> ignore + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectA") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "projectB" && version = VersionRequirement.Parse "1.0.0.0") + |> shouldNotEqual None + + ZipFile.ExtractToDirectory(Path.Combine(outPath, "projectA.1.0.0.0.nupkg"), outPath) + let expectedFile = Path.Combine(outPath, "lib", "net45", "projectB.dll") + + File.Exists expectedFile |> shouldEqual false + + CleanDir rootPath + +[] +let ``#1848 all templates without include-referenced-projects`` () = + let scenario = "i001848-pack-all-templates-wo-incl-flag" + let rootPath = scenarioTempPath scenario + let outPath = Path.Combine(rootPath, "out") + paket ("pack \"" + outPath + "\"") scenario |> ignore + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectA") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "projectB" && version = VersionRequirement.Parse "1.0.0.0") + |> shouldNotEqual None + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectB") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "nunit" && version = VersionRequirement.Parse "[3.8.1]") + |> shouldNotEqual None + + ZipFile.ExtractToDirectory(Path.Combine(outPath, "projectA.1.0.0.0.nupkg"), outPath) + let expectedFile = Path.Combine(outPath, "lib", "net45", "projectB.dll") + File.Exists expectedFile |> shouldEqual false + + CleanDir rootPath + +[] +let ``#1848 all templates with include-referenced-projects`` () = + let scenario = "i001848-pack-all-templates-with-incl-flag" + let rootPath = scenarioTempPath scenario + let outPath = Path.Combine(rootPath, "out") + paket ("pack --include-referenced-projects \"" + outPath + "\"") scenario |> ignore + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectA") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "projectB" && version = VersionRequirement.Parse "1.0.0.0") + |> shouldNotEqual None + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectB") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "nunit" && version = VersionRequirement.Parse "[3.8.1]") + |> shouldNotEqual None + + ZipFile.ExtractToDirectory(Path.Combine(outPath, "projectA.1.0.0.0.nupkg"), outPath) + let expectedFile = Path.Combine(outPath, "lib", "net45", "projectB.dll") + File.Exists expectedFile |> shouldEqual false + + CleanDir rootPath + +[] +let ``#1848 include-referenced-projects with non-packed project dependencies`` () = + let scenario = "i001848-pack-with-non-packed-deps" + let rootPath = scenarioTempPath scenario + let outPath = Path.Combine(rootPath, "out") + paket ("pack --include-referenced-projects \"" + outPath + "\"") scenario |> ignore + + NuGetLocal.getDetailsFromLocalNuGetPackage false None outPath "" (PackageName "projectA") (SemVer.Parse "1.0.0.0") + |> Async.RunSynchronously + |> ODataSearchResult.get + |> getDependencies + |> List.tryFind (fun (name,version,_) -> name = PackageName "nunit" && version = VersionRequirement.Parse "[3.8.1]") + |> shouldNotEqual None + + ZipFile.ExtractToDirectory(Path.Combine(outPath, "projectA.1.0.0.0.nupkg"), outPath) + Path.Combine(outPath, "lib", "net45", "projectB.dll") |> checkFileExists + + CleanDir rootPath + [] let ``#2694 paket fixnuspec should not remove project references``() = let project = "console" diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.dependencies b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.dependencies new file mode 100644 index 0000000000..d523d36b90 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.dependencies @@ -0,0 +1,3 @@ +framework: net461 +source https://www.nuget.org/api/v2 +nuget nunit 3.8.1 \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.lock b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.lock new file mode 100644 index 0000000000..25de4dd4cf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket.lock @@ -0,0 +1,4 @@ +RESTRICTION: == net461 +NUGET + remote: https://www.nuget.org/api/v2 + NUnit (3.8.1) diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket1848.sln b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket1848.sln new file mode 100644 index 0000000000..c5c8a21282 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/paket1848.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectA", "projectA\projectA.csproj", "{2A530232-3251-445E-ADF8-7B562E1BAB0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectB", "projectB\projectB.csproj", "{4CF9D89C-5231-4A59-B823-17082D5646EA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..667bb061e5 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/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("projectA")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectA")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("2A530232-3251-445E-ADF8-7B562E1BAB0D")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectA.dll b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectA.dll new file mode 100644 index 0000000000..94f81a1c0e Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectA.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectB.dll new file mode 100644 index 0000000000..1d593495b4 Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/paket.template b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/projectA.csproj b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/projectA.csproj new file mode 100644 index 0000000000..0b0af1851b --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectA/projectA.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectA + projectA + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {4cf9d89c-5231-4a59-b823-17082d5646ea} + projectB + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e2a770bb8e --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/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("projectB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectB")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("4CF9D89C-5231-4A59-B823-17082D5646EA")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/bin/projectB.dll new file mode 100644 index 0000000000..1d593495b4 Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.references b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.references new file mode 100644 index 0000000000..e88562d545 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.references @@ -0,0 +1 @@ +nunit \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.template b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/projectB.csproj b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/projectB.csproj new file mode 100644 index 0000000000..cd35c8e35f --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-with-incl-flag/before/projectB/projectB.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {4CF9D89C-5231-4A59-B823-17082D5646EA} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectB + projectB + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\packages\NUnit\lib\net45\nunit.framework.dll + True + True + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.dependencies b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.dependencies new file mode 100644 index 0000000000..d523d36b90 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.dependencies @@ -0,0 +1,3 @@ +framework: net461 +source https://www.nuget.org/api/v2 +nuget nunit 3.8.1 \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.lock b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.lock new file mode 100644 index 0000000000..25de4dd4cf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket.lock @@ -0,0 +1,4 @@ +RESTRICTION: == net461 +NUGET + remote: https://www.nuget.org/api/v2 + NUnit (3.8.1) diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket1848.sln b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket1848.sln new file mode 100644 index 0000000000..c5c8a21282 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/paket1848.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectA", "projectA\projectA.csproj", "{2A530232-3251-445E-ADF8-7B562E1BAB0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectB", "projectB\projectB.csproj", "{4CF9D89C-5231-4A59-B823-17082D5646EA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..667bb061e5 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/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("projectA")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectA")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("2A530232-3251-445E-ADF8-7B562E1BAB0D")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectA.dll b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectA.dll new file mode 100644 index 0000000000..5a478842e3 Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectA.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectB.dll new file mode 100644 index 0000000000..69cfdc0c6d Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/paket.template b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/projectA.csproj b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/projectA.csproj new file mode 100644 index 0000000000..0b0af1851b --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectA/projectA.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectA + projectA + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {4cf9d89c-5231-4a59-b823-17082d5646ea} + projectB + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e2a770bb8e --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/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("projectB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectB")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("4CF9D89C-5231-4A59-B823-17082D5646EA")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/bin/projectB.dll new file mode 100644 index 0000000000..69cfdc0c6d Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.references b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.references new file mode 100644 index 0000000000..e88562d545 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.references @@ -0,0 +1 @@ +nunit \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.template b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/projectB.csproj b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/projectB.csproj new file mode 100644 index 0000000000..cd35c8e35f --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-all-templates-wo-incl-flag/before/projectB/projectB.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {4CF9D89C-5231-4A59-B823-17082D5646EA} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectB + projectB + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\packages\NUnit\lib\net45\nunit.framework.dll + True + True + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.dependencies b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.dependencies new file mode 100644 index 0000000000..d523d36b90 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.dependencies @@ -0,0 +1,3 @@ +framework: net461 +source https://www.nuget.org/api/v2 +nuget nunit 3.8.1 \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.lock b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.lock new file mode 100644 index 0000000000..25de4dd4cf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket.lock @@ -0,0 +1,4 @@ +RESTRICTION: == net461 +NUGET + remote: https://www.nuget.org/api/v2 + NUnit (3.8.1) diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket1848.sln b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket1848.sln new file mode 100644 index 0000000000..c5c8a21282 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/paket1848.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectA", "projectA\projectA.csproj", "{2A530232-3251-445E-ADF8-7B562E1BAB0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectB", "projectB\projectB.csproj", "{4CF9D89C-5231-4A59-B823-17082D5646EA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..667bb061e5 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/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("projectA")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectA")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("2A530232-3251-445E-ADF8-7B562E1BAB0D")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectA.dll b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectA.dll new file mode 100644 index 0000000000..2218d776b9 Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectA.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectB.dll new file mode 100644 index 0000000000..0b0bfac1ac Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/paket.template b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/projectA.csproj b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/projectA.csproj new file mode 100644 index 0000000000..0b0af1851b --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectA/projectA.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectA + projectA + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {4cf9d89c-5231-4a59-b823-17082d5646ea} + projectB + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e2a770bb8e --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/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("projectB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectB")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("4CF9D89C-5231-4A59-B823-17082D5646EA")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/bin/projectB.dll new file mode 100644 index 0000000000..0b0bfac1ac Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.references b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.references new file mode 100644 index 0000000000..e88562d545 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.references @@ -0,0 +1 @@ +nunit \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.template b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/projectB.csproj b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/projectB.csproj new file mode 100644 index 0000000000..cd35c8e35f --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-with-incl-flag/before/projectB/projectB.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {4CF9D89C-5231-4A59-B823-17082D5646EA} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectB + projectB + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\packages\NUnit\lib\net45\nunit.framework.dll + True + True + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.dependencies b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.dependencies new file mode 100644 index 0000000000..d523d36b90 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.dependencies @@ -0,0 +1,3 @@ +framework: net461 +source https://www.nuget.org/api/v2 +nuget nunit 3.8.1 \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.lock b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.lock new file mode 100644 index 0000000000..25de4dd4cf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket.lock @@ -0,0 +1,4 @@ +RESTRICTION: == net461 +NUGET + remote: https://www.nuget.org/api/v2 + NUnit (3.8.1) diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket1848.sln b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket1848.sln new file mode 100644 index 0000000000..c5c8a21282 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/paket1848.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectA", "projectA\projectA.csproj", "{2A530232-3251-445E-ADF8-7B562E1BAB0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectB", "projectB\projectB.csproj", "{4CF9D89C-5231-4A59-B823-17082D5646EA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..667bb061e5 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/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("projectA")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectA")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("2A530232-3251-445E-ADF8-7B562E1BAB0D")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectA.dll b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectA.dll new file mode 100644 index 0000000000..febb72e12d Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectA.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectB.dll new file mode 100644 index 0000000000..70daebe57d Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/paket.template b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/projectA.csproj b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/projectA.csproj new file mode 100644 index 0000000000..0b0af1851b --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectA/projectA.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectA + projectA + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {4cf9d89c-5231-4a59-b823-17082d5646ea} + projectB + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e2a770bb8e --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/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("projectB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectB")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("4CF9D89C-5231-4A59-B823-17082D5646EA")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/bin/projectB.dll new file mode 100644 index 0000000000..70daebe57d Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.references b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.references new file mode 100644 index 0000000000..e88562d545 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.references @@ -0,0 +1 @@ +nunit \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.template b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/projectB.csproj b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/projectB.csproj new file mode 100644 index 0000000000..cd35c8e35f --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-single-template-wo-incl-flag/before/projectB/projectB.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {4CF9D89C-5231-4A59-B823-17082D5646EA} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectB + projectB + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\packages\NUnit\lib\net45\nunit.framework.dll + True + True + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.dependencies b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.dependencies new file mode 100644 index 0000000000..d523d36b90 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.dependencies @@ -0,0 +1,3 @@ +framework: net461 +source https://www.nuget.org/api/v2 +nuget nunit 3.8.1 \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.lock b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.lock new file mode 100644 index 0000000000..25de4dd4cf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket.lock @@ -0,0 +1,4 @@ +RESTRICTION: == net461 +NUGET + remote: https://www.nuget.org/api/v2 + NUnit (3.8.1) diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket1848.sln b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket1848.sln new file mode 100644 index 0000000000..c5c8a21282 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/paket1848.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.0.0 +MinimumVisualStudioVersion = 10.0.0.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectA", "projectA\projectA.csproj", "{2A530232-3251-445E-ADF8-7B562E1BAB0D}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "projectB", "projectB\projectB.csproj", "{4CF9D89C-5231-4A59-B823-17082D5646EA}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D}.Release|Any CPU.Build.0 = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4CF9D89C-5231-4A59-B823-17082D5646EA}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..667bb061e5 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/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("projectA")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectA")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("2A530232-3251-445E-ADF8-7B562E1BAB0D")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectA.dll b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectA.dll new file mode 100644 index 0000000000..46a79aee00 Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectA.dll differ diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectB.dll new file mode 100644 index 0000000000..9ce47dafdc Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/paket.template b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/paket.template new file mode 100644 index 0000000000..f391c6c5bf --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/paket.template @@ -0,0 +1,3 @@ +type project +authors test +description test \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/projectA.csproj b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/projectA.csproj new file mode 100644 index 0000000000..0b0af1851b --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectA/projectA.csproj @@ -0,0 +1,61 @@ + + + + + Debug + AnyCPU + {2A530232-3251-445E-ADF8-7B562E1BAB0D} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectA + projectA + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + {4cf9d89c-5231-4a59-b823-17082d5646ea} + projectB + + + + + \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/Properties/AssemblyInfo.cs b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..e2a770bb8e --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/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("projectB")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("projectB")] +[assembly: AssemblyCopyright("Copyright © 2017")] +[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("4CF9D89C-5231-4A59-B823-17082D5646EA")] + +// 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")] \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/bin/projectB.dll b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/bin/projectB.dll new file mode 100644 index 0000000000..9ce47dafdc Binary files /dev/null and b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/bin/projectB.dll differ diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/paket.references b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/paket.references new file mode 100644 index 0000000000..e88562d545 --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/paket.references @@ -0,0 +1 @@ +nunit \ No newline at end of file diff --git a/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/projectB.csproj b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/projectB.csproj new file mode 100644 index 0000000000..cd35c8e35f --- /dev/null +++ b/integrationtests/scenarios/i001848-pack-with-non-packed-deps/before/projectB/projectB.csproj @@ -0,0 +1,67 @@ + + + + + Debug + AnyCPU + {4CF9D89C-5231-4A59-B823-17082D5646EA} + {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Properties + projectB + projectB + v4.5 + 512 + + + AnyCPU + true + full + false + bin\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + ..\packages\NUnit\lib\net45\nunit.framework.dll + True + True + + + + + \ No newline at end of file diff --git a/src/Paket.Core/Packaging/PackageMetaData.fs b/src/Paket.Core/Packaging/PackageMetaData.fs index 142f739c8e..0e22426073 100644 --- a/src/Paket.Core/Packaging/PackageMetaData.fs +++ b/src/Paket.Core/Packaging/PackageMetaData.fs @@ -159,7 +159,7 @@ let addFile (source : string) (target : string) (templateFile : TemplateFile) = | IncompleteTemplate -> failwith (sprintf "You should only try and add files to template files with complete metadata.%sFile: %s" Environment.NewLine templateFile.FileName) -let findDependencies (dependenciesFile : DependenciesFile) config platform (template : TemplateFile) (project : ProjectFile) lockDependencies minimumFromLockFile pinProjectReferences (map : Map) includeReferencedProjects (version :SemVerInfo option) specificVersions (projDeps) = +let findDependencies (dependenciesFile : DependenciesFile) config platform (template : TemplateFile) (project : ProjectFile) lockDependencies minimumFromLockFile pinProjectReferences (projectWithTemplates : Map) includeReferencedProjects (version :SemVerInfo option) specificVersions (projDeps) = let includeReferencedProjects = template.IncludeReferencedProjects || includeReferencedProjects let targetDir = match project.OutputType with @@ -183,10 +183,10 @@ let findDependencies (dependenciesFile : DependenciesFile) config platform (temp interProjectDeps |> List.filter (fun proj -> proj <> project) - |> List.fold (fun (deps, files) p -> - match Map.tryFind p.FileName map with - | Some packagedRef -> packagedRef :: deps, files - | None -> + |> List.fold (fun (deps, files) p -> + match Map.tryFind p.FileName projectWithTemplates with + | Some (packagedTemplate,packagedProject,true) -> (packagedTemplate,packagedProject) :: deps, files + | _ -> let p = match ProjectFile.TryLoad p.FileName with | Some p -> p @@ -296,30 +296,20 @@ let findDependencies (dependenciesFile : DependenciesFile) config platform (temp |> Seq.map (fun kv -> kv.Value.NugetPackages |> List.map (fun p -> Some kv.Key, p, None)) |> List.concat | None -> [] - + [if includeReferencedProjects then for proj in project.GetAllReferencedProjects(false,projDeps) |> Seq.filter ((<>) project) do - match proj.FindTemplatesFile() with - | Some templateFileName when TemplateFile.IsProjectType templateFileName -> - match TemplateFile.Load(templateFileName, lockFile, None, Seq.empty |> Map.ofSeq).Contents with - | CompleteInfo(_) -> - yield! getPackages proj - | ProjectInfo(core, _) -> - let name = - match core.Id with - | Some name -> name - | None -> proj.GetAssemblyName().Replace(".dll","").Replace(".exe","") - - let versionConstraint = - match core.Version with - | Some v -> - let vr = if lockDependencies || pinProjectReferences then Specific v else Minimum v - VersionRequirement(vr, getPreReleaseStatus v) - | None -> VersionRequirement.AllReleases - - yield None, { Name = PackageName name; Settings = InstallSettings.Default }, Some versionConstraint + match Map.tryFind proj.FileName projectWithTemplates with + | Some ({ Contents = CompleteInfo(core, _) }, _, _) -> + let versionConstraint = + match core.Version with + | Some v -> + let vr = if lockDependencies || pinProjectReferences then Specific v else Minimum v + VersionRequirement(vr, getPreReleaseStatus v) + | None -> VersionRequirement.AllReleases + + yield None, { Name = PackageName core.Id; Settings = InstallSettings.Default }, Some versionConstraint | _ -> yield! getPackages proj - yield! getPackages project] // filter out any references that are transitive diff --git a/src/Paket.Core/Packaging/PackageProcess.fs b/src/Paket.Core/Packaging/PackageProcess.fs index 8be9d518f3..70dda5c875 100644 --- a/src/Paket.Core/Packaging/PackageProcess.fs +++ b/src/Paket.Core/Packaging/PackageProcess.fs @@ -148,41 +148,38 @@ let Pack(workingDir,dependenciesFile : DependenciesFile, packageOutputPath, buil let projDeps = (Dictionary(),Dictionary()) // load up project files and grab meta data - let projectTemplates = - let getAllProjectsFiles workingDir = - ProjectFile.FindAllProjectFiles workingDir - |> Array.choose (fun (projectFile:FileInfo) -> - match ProjectFile.FindCorrespondingFile(projectFile, Constants.TemplateFile) with - | None -> None - | Some fileName -> - match ProjectFile.tryLoad projectFile.FullName with - | Some projectFile -> Some(projectFile,TemplateFile.Load(fileName,lockFile,version,specificVersions)) - | None -> None) - |> Array.filter (fun (_,templateFile) -> + let projectTemplates = + ProjectFile.FindAllProjectFiles workingDir + |> Array.choose (fun (projectFile:FileInfo) -> + match ProjectFile.FindCorrespondingFile(projectFile, Constants.TemplateFile) with + | None -> None + | Some fileName -> + match ProjectFile.tryLoad projectFile.FullName with + | Some projectFile -> Some(projectFile,TemplateFile.Load(fileName,lockFile,version,specificVersions)) + | None -> None) + |> Array.filter (fun (_,templateFile) -> + match templateFile with + | CompleteTemplate _ -> false + | IncompleteTemplate -> true) + |> Array.filter (fun (_,templateFile) -> + match TemplateFile.tryGetId templateFile with + | Some id -> + if excludedTemplateIds.Contains id then + allTemplateFiles.Remove(templateFile.FileName) |> ignore + false + else true + | _ -> true) + |> Array.map (fun (projectFile,templateFile') -> + allTemplateFiles.Remove(templateFile'.FileName) |> ignore + + let merged = merge buildConfig buildPlatform version specificVersions projectFile templateFile' + let willBePacked = match templateFile with - | CompleteTemplate _ -> false - | IncompleteTemplate -> true) - |> Array.filter (fun (_,templateFile) -> - match TemplateFile.tryGetId templateFile with - | Some id -> - if excludedTemplateIds.Contains id then - allTemplateFiles.Remove(templateFile.FileName) |> ignore - false - else true - | _ -> true) - |> Array.map (fun (projectFile,templateFile') -> - allTemplateFiles.Remove(templateFile'.FileName) |> ignore - - let merged = merge buildConfig buildPlatform version specificVersions projectFile templateFile' - Path.GetFullPath projectFile.FileName |> normalizePath,(merged,projectFile)) - |> Map.ofArray - - match templateFile with - | Some template -> - let projects = getAllProjectsFiles (FileInfo(template).Directory.FullName) - projects - |> Map.filter (fun p (t,_) -> normalizePath (Path.GetFullPath t.FileName) = normalizePath (Path.GetFullPath template)) - | None -> getAllProjectsFiles workingDir + | Some file -> normalizePath (Path.GetFullPath file) = normalizePath (Path.GetFullPath merged.FileName) + | None -> true + + Path.GetFullPath projectFile.FileName |> normalizePath,(merged,projectFile,willBePacked)) + |> Map.ofArray // add dependencies let allTemplates = @@ -209,8 +206,9 @@ let Pack(workingDir,dependenciesFile : DependenciesFile, packageOutputPath, buil let remaining = allTemplateFiles |> Seq.collect convertRemainingTemplate |> Seq.toList projectTemplates + |> Map.filter (fun _ (_,_,willBePacked) -> willBePacked) |> Map.toList - |> Seq.collect(fun (_,(t, p)) -> + |> Seq.collect(fun (_,(t, p, _)) -> seq { for template in optWithSymbols p t do yield template, p