From 6a84ee269f23dc788c14c12f88d0bf52012d666d Mon Sep 17 00:00:00 2001 From: James Crowley Date: Tue, 3 Feb 2015 17:34:59 +0000 Subject: [PATCH 1/9] Attempting to allow csproj being passed as a NuSpec file --- src/app/FakeLib/NuGet/NugetHelper.fs | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 3ee2afb523e..366e96487d2 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -124,12 +124,12 @@ let private replaceAccessKey key (text : string) = if isNullOrEmpty key then text else text.Replace(key, "PRIVATEKEY") -let private createNuspecFile parameters nuSpec = - let fi = fileInfo nuSpec - let specFile = parameters.WorkingDir @@ (fi.Name.Replace("nuspec", "") + parameters.Version + ".nuspec") - |> FullName +let private createNuSpecFromTemplate parameters nuSpecOrProjFile (templateNuSpec:FileInfo) = + let specFile = parameters.WorkingDir @@ (templateNuSpec.Name.Replace("nuspec", "") + parameters.Version + ".nuspec") + |> FullName tracefn "Creating .nuspec file at %s" specFile - fi.CopyTo(specFile, true) |> ignore + + templateNuSpec.CopyTo(specFile, true) |> ignore let getFrameworkGroup (frameworkTags : (string * string) seq) = frameworkTags @@ -211,7 +211,19 @@ let private createNuspecFile parameters nuSpec = processTemplates replacements [ specFile ] tracefn "Created nuspec file %s" specFile - specFile + nuSpecOrProjFile + +let private createNuspecFile parameters nuSpecOrProjFile = + let nuSpecOrProjFileInfo = fileInfo nuSpecOrProjFile + let templateNuSpec = + if nuSpecOrProjFileInfo.Extension = ".nuspec" then + nuSpecOrProjFileInfo + else + (fileInfo (Path.GetFileNameWithoutExtension(nuSpecOrProjFileInfo.Name) + ".nuspec")) + + match templateNuSpec.Exists with + | true -> createNuSpecFromTemplate parameters nuSpecOrProjFile templateNuSpec + | false -> nuSpecOrProjFile let private propertiesParam = function | [] -> "" From ceb32988e8a3ee9ce858f4a1fa7fe4b86da6e997 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Tue, 3 Feb 2015 17:51:48 +0000 Subject: [PATCH 2/9] Minor refactor --- src/app/FakeLib/NuGet/NugetHelper.fs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 366e96487d2..0f5400b396b 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -124,7 +124,7 @@ let private replaceAccessKey key (text : string) = if isNullOrEmpty key then text else text.Replace(key, "PRIVATEKEY") -let private createNuSpecFromTemplate parameters nuSpecOrProjFile (templateNuSpec:FileInfo) = +let private createNuSpecFromTemplate parameters (templateNuSpec:FileInfo) = let specFile = parameters.WorkingDir @@ (templateNuSpec.Name.Replace("nuspec", "") + parameters.Version + ".nuspec") |> FullName tracefn "Creating .nuspec file at %s" specFile @@ -211,7 +211,6 @@ let private createNuSpecFromTemplate parameters nuSpecOrProjFile (templateNuSpec processTemplates replacements [ specFile ] tracefn "Created nuspec file %s" specFile - nuSpecOrProjFile let private createNuspecFile parameters nuSpecOrProjFile = let nuSpecOrProjFileInfo = fileInfo nuSpecOrProjFile @@ -222,8 +221,10 @@ let private createNuspecFile parameters nuSpecOrProjFile = (fileInfo (Path.GetFileNameWithoutExtension(nuSpecOrProjFileInfo.Name) + ".nuspec")) match templateNuSpec.Exists with - | true -> createNuSpecFromTemplate parameters nuSpecOrProjFile templateNuSpec - | false -> nuSpecOrProjFile + | true -> createNuSpecFromTemplate parameters templateNuSpec + | false -> () + + nuSpecOrProjFile let private propertiesParam = function | [] -> "" From 8d1edcac14ee408e1c8c8b0c28f1a65e4207fba4 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Tue, 3 Feb 2015 17:53:49 +0000 Subject: [PATCH 3/9] Make variable names clearer --- src/app/FakeLib/NuGet/NugetHelper.fs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 0f5400b396b..4e604db7d6a 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -328,11 +328,11 @@ let rec private publishSymbols parameters = /// /// - `setParams` - Function used to manipulate the default NuGet parameters. /// - `nuspecFile` - The .nuspec file name. -let NuGetPack setParams nuspecFile = - traceStartTask "NuGetPack" nuspecFile +let NuGetPack setParams nuspecOrProjectFile = + traceStartTask "NuGetPack" nuspecOrProjectFile let parameters = NuGetDefaults() |> setParams try - let nuspecFile = createNuspecFile parameters nuspecFile + let nuspecFile = createNuspecFile parameters nuspecOrProjectFile pack parameters nuspecFile DeleteFile nuspecFile with exn -> @@ -340,7 +340,7 @@ let NuGetPack setParams nuspecFile = else exn.Message) |> replaceAccessKey parameters.AccessKey |> failwith - traceEndTask "NuGetPack" nuspecFile + traceEndTask "NuGetPack" nuspecOrProjectFile /// Publishes a NuGet package to the nuget server. /// ## Parameters @@ -357,11 +357,11 @@ let NuGetPublish setParams = /// /// - `setParams` - Function used to manipulate the default NuGet parameters. /// - `nuspecFile` - The .nuspec file name. -let NuGet setParams nuspecFile = - traceStartTask "NuGet" nuspecFile +let NuGet setParams nuspecOrProjectFile = + traceStartTask "NuGet" nuspecOrProjectFile let parameters = NuGetDefaults() |> setParams try - let nuspecFile = createNuspecFile parameters nuspecFile + let nuspecFile = createNuspecFile parameters nuspecOrProjectFile pack parameters nuspecFile if parameters.Publish then publish parameters @@ -372,7 +372,7 @@ let NuGet setParams nuspecFile = else exn.Message) |> replaceAccessKey parameters.AccessKey |> failwith - traceEndTask "NuGet" nuspecFile + traceEndTask "NuGet" nuspecOrProjectFile /// NuSpec metadata type type NuSpecPackage = From 97b6f1840e00d907d37307c987930bf22a932026 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Tue, 17 Feb 2015 15:45:29 +0000 Subject: [PATCH 4/9] Fix nuGethelper so it returns the correct path --- src/app/FakeLib/NuGet/NugetHelper.fs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 4e604db7d6a..1be8d5ec73d 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -211,6 +211,7 @@ let private createNuSpecFromTemplate parameters (templateNuSpec:FileInfo) = processTemplates replacements [ specFile ] tracefn "Created nuspec file %s" specFile + specFile let private createNuspecFile parameters nuSpecOrProjFile = let nuSpecOrProjFileInfo = fileInfo nuSpecOrProjFile @@ -222,9 +223,8 @@ let private createNuspecFile parameters nuSpecOrProjFile = match templateNuSpec.Exists with | true -> createNuSpecFromTemplate parameters templateNuSpec - | false -> () - - nuSpecOrProjFile + | false -> nuSpecOrProjFile + let private propertiesParam = function | [] -> "" From 4e036a6ef7700ad1befe4f6444ceef5ddfe21707 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Tue, 17 Feb 2015 16:26:51 +0000 Subject: [PATCH 5/9] Adding failing test for basic scenario that needs to work without file getting deleted --- src/app/FakeLib/NuGet/NugetHelper.fs | 10 +--- .../Test.FAKECore/PackageMgt/NugetSpecs.cs | 56 +++++++++++++++++++ src/test/Test.FAKECore/Test.FAKECore.csproj | 13 +++++ .../TestData/fake_no_template.csproj | 53 ++++++++++++++++++ .../TestData/fake_no_template.nuspec | 20 +++++++ 5 files changed, 144 insertions(+), 8 deletions(-) create mode 100644 src/test/Test.FAKECore/TestData/fake_no_template.csproj create mode 100644 src/test/Test.FAKECore/TestData/fake_no_template.nuspec diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 1be8d5ec73d..96b11102b82 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -215,14 +215,8 @@ let private createNuSpecFromTemplate parameters (templateNuSpec:FileInfo) = let private createNuspecFile parameters nuSpecOrProjFile = let nuSpecOrProjFileInfo = fileInfo nuSpecOrProjFile - let templateNuSpec = - if nuSpecOrProjFileInfo.Extension = ".nuspec" then - nuSpecOrProjFileInfo - else - (fileInfo (Path.GetFileNameWithoutExtension(nuSpecOrProjFileInfo.Name) + ".nuspec")) - - match templateNuSpec.Exists with - | true -> createNuSpecFromTemplate parameters templateNuSpec + match nuSpecOrProjFileInfo.Extension = ".nuspec" with + | true -> createNuSpecFromTemplate parameters nuSpecOrProjFileInfo | false -> nuSpecOrProjFile diff --git a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs index bd2bda8d3a7..2892d525513 100644 --- a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs +++ b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs @@ -64,6 +64,62 @@ public class when_packing_with_nuspec_template }; } + public class when_packing_with_csproj_and_complete_nuspec_alongside + { + static string tempDir, pkgFile, projectFile; + static FSharpFunc nugetParams; + + Establish context = () => + { + tempDir = Path.GetTempPath(); + pkgFile = Path.Combine(tempDir, "fake.0.0.1.nupkg"); + projectFile = Path.Combine(TestData.TestDataDir, "fake_no_template.csproj"); + + try { File.Delete(pkgFile); } catch (FileNotFoundException) { } + + nugetParams = FSharpFuncUtil.ToFSharpFunc( + p => new NuGetHelper.NuGetParams( + authors: ListModule.OfSeq(new[] { "author" }), + project: "fake", + description: "description", + outputPath: tempDir, + summary: "summary", + workingDir: TestData.TestDataDir, + version: "0.0.1", + + files: ListModule.OfSeq(new[] { new Tuple, FSharpOption>("*.*", FSharpOption.None, FSharpOption.None) }), + + accessKey: p.AccessKey, + copyright: p.Copyright, + dependencies: p.Dependencies, + dependenciesByFramework: p.DependenciesByFramework, + includeReferencedProjects: p.IncludeReferencedProjects, + noDefaultExcludes: p.NoDefaultExcludes, + noPackageAnalysis: p.NoPackageAnalysis, + projectFile: p.ProjectFile, + properties: p.Properties, + publish: p.Publish, + publishTrials: p.PublishTrials, + publishUrl: p.PublishUrl, + references: p.References, + referencesByFramework: p.ReferencesByFramework, + releaseNotes: p.ReleaseNotes, + symbolPackage: p.SymbolPackage, + tags: p.Tags, + timeOut: p.TimeOut, + title: p.Title, + toolPath: p.ToolPath + ) + ); + }; + + Because of = () => NuGetHelper.NuGetPack(nugetParams, projectFile); + It should_create_nupkg_file = () => + { + File.Exists(pkgFile).ShouldBeTrue(); + }; + } + public class when_packing_with_a_complete_nuspec_file { static string tempDir, pkgFile, nuspecFile; diff --git a/src/test/Test.FAKECore/Test.FAKECore.csproj b/src/test/Test.FAKECore/Test.FAKECore.csproj index 4287645d902..9823a4bcb91 100644 --- a/src/test/Test.FAKECore/Test.FAKECore.csproj +++ b/src/test/Test.FAKECore/Test.FAKECore.csproj @@ -225,6 +225,12 @@ Always + + Always + + + Always + Always @@ -234,10 +240,17 @@ PreserveNewest + + Always + + Designer + Always + + Always Designer diff --git a/src/test/Test.FAKECore/TestData/fake_no_template.csproj b/src/test/Test.FAKECore/TestData/fake_no_template.csproj new file mode 100644 index 00000000000..319e9be35d6 --- /dev/null +++ b/src/test/Test.FAKECore/TestData/fake_no_template.csproj @@ -0,0 +1,53 @@ + + + + + Debug + AnyCPU + {0D71FF59-482C-4CC2-A068-351C9FCF5555} + Library + Properties + TestNuGetPack + TestNuGetPack + v4.5 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/Test.FAKECore/TestData/fake_no_template.nuspec b/src/test/Test.FAKECore/TestData/fake_no_template.nuspec new file mode 100644 index 00000000000..4f4893901a7 --- /dev/null +++ b/src/test/Test.FAKECore/TestData/fake_no_template.nuspec @@ -0,0 +1,20 @@ + + + + description + fake_complete + 0.0.1 + author + en-US + summary + http://www.github.com/fsharp/Fake + http://www.github.com/fsharp/Fake/blob/master/License.txt + https://raw.githubusercontent.com/fsharp/FAKE/master/help/pics/logo.png + + build, fake, f# + + + + + + From 426f40b99f54d458e881fd38a70639e49af47661 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Thu, 19 Feb 2015 15:49:06 +0000 Subject: [PATCH 6/9] Don't delete NuSpec if if it's not been output from a template --- src/app/FakeLib/NuGet/NugetHelper.fs | 23 +++++++++++-------- .../Test.FAKECore/PackageMgt/NugetSpecs.cs | 2 +- .../TestData/fake_no_template.nuspec | 2 +- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 96b11102b82..42dcafe3603 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -213,11 +213,11 @@ let private createNuSpecFromTemplate parameters (templateNuSpec:FileInfo) = tracefn "Created nuspec file %s" specFile specFile -let private createNuspecFile parameters nuSpecOrProjFile = +let private createNuSpecFromTemplateIfNuSpecFile parameters nuSpecOrProjFile = let nuSpecOrProjFileInfo = fileInfo nuSpecOrProjFile match nuSpecOrProjFileInfo.Extension = ".nuspec" with - | true -> createNuSpecFromTemplate parameters nuSpecOrProjFileInfo - | false -> nuSpecOrProjFile + | true -> Some (createNuSpecFromTemplate parameters nuSpecOrProjFileInfo) + | false -> None let private propertiesParam = function @@ -326,9 +326,11 @@ let NuGetPack setParams nuspecOrProjectFile = traceStartTask "NuGetPack" nuspecOrProjectFile let parameters = NuGetDefaults() |> setParams try - let nuspecFile = createNuspecFile parameters nuspecOrProjectFile - pack parameters nuspecFile - DeleteFile nuspecFile + match (createNuSpecFromTemplateIfNuSpecFile parameters nuspecOrProjectFile) with + | Some nuspecTemplateFile -> + pack parameters nuspecTemplateFile + DeleteFile nuspecTemplateFile + | None -> pack parameters nuspecOrProjectFile with exn -> (if exn.InnerException <> null then exn.Message + "\r\n" + exn.InnerException.Message else exn.Message) @@ -355,12 +357,15 @@ let NuGet setParams nuspecOrProjectFile = traceStartTask "NuGet" nuspecOrProjectFile let parameters = NuGetDefaults() |> setParams try - let nuspecFile = createNuspecFile parameters nuspecOrProjectFile - pack parameters nuspecFile + match (createNuSpecFromTemplateIfNuSpecFile parameters nuspecOrProjectFile) with + | Some nuspecTemplateFile -> + pack parameters nuspecTemplateFile + DeleteFile nuspecTemplateFile + | None -> pack parameters nuspecOrProjectFile + if parameters.Publish then publish parameters if parameters.ProjectFile <> null then publishSymbols parameters - DeleteFile nuspecFile with exn -> (if exn.InnerException <> null then exn.Message + "\r\n" + exn.InnerException.Message else exn.Message) diff --git a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs index 2892d525513..6aba2c2afca 100644 --- a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs +++ b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs @@ -72,7 +72,7 @@ public class when_packing_with_csproj_and_complete_nuspec_alongside Establish context = () => { tempDir = Path.GetTempPath(); - pkgFile = Path.Combine(tempDir, "fake.0.0.1.nupkg"); + pkgFile = Path.Combine(tempDir, "fake_no_template.0.0.1.nupkg"); projectFile = Path.Combine(TestData.TestDataDir, "fake_no_template.csproj"); try { File.Delete(pkgFile); } catch (FileNotFoundException) { } diff --git a/src/test/Test.FAKECore/TestData/fake_no_template.nuspec b/src/test/Test.FAKECore/TestData/fake_no_template.nuspec index 4f4893901a7..c0042ab714a 100644 --- a/src/test/Test.FAKECore/TestData/fake_no_template.nuspec +++ b/src/test/Test.FAKECore/TestData/fake_no_template.nuspec @@ -2,7 +2,7 @@ description - fake_complete + fake_no_template 0.0.1 author en-US From 4027bd055d0f1a39c6ef4cf85808d99c295555a3 Mon Sep 17 00:00:00 2001 From: James Crowley Date: Thu, 19 Feb 2015 16:32:52 +0000 Subject: [PATCH 7/9] Deliberately adding binary files for test purposes --- .../TestData/bin/Debug/TestNuGetPack.dll | Bin 0 -> 4096 bytes .../TestData/bin/Debug/TestNuGetPack.pdb | Bin 0 -> 7680 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/test/Test.FAKECore/TestData/bin/Debug/TestNuGetPack.dll create mode 100644 src/test/Test.FAKECore/TestData/bin/Debug/TestNuGetPack.pdb diff --git a/src/test/Test.FAKECore/TestData/bin/Debug/TestNuGetPack.dll b/src/test/Test.FAKECore/TestData/bin/Debug/TestNuGetPack.dll new file mode 100644 index 0000000000000000000000000000000000000000..b0f6dc2ed7e5d1d3d49c70ed62af0e98061387a8 GIT binary patch literal 4096 zcmeHKU2GIp6h5>4p%iGO5-dt^nu3DT%`ROkAWF+_|FE>ByHu2obY}K;J1{%5&dfp= z60K25crhB^d}uK70etd-L}JvSFZx2li$3^(Bt}gPiSgA3>UZwUZns@TV`5^6r`+$} zd(OG%o^$Tmdxyg>zD*58)QGmYNOToFQ=i0p!#u=okABidS5{x|ysC^|@661ao?3LB zysH&dL$htiS9PJfC0jLZH8q}A3rq8@YK#n7U-^>Wrh~_Z?pQ(YS-(*$(x73GIW`QPP_c|S#ri+C&!c8aC;Ag=i;y_0hW0zH8cfk2NkLPEJYJ(KKDc zn2)e)=;%la{Z*Fn+Jly(W6p%-%FqU))jauqTMumvVrUO!(i1o)Q^K(Y@wJA1GxgIx z)X*%A0pF$9fFDZyO5#rv7bSKmEbWmvCh@$ISDNWPiI*hj3yHreHvcxj5gDwEK&^y3Za0i09x zHPEAPfamBY@OAo`8s{r9A{$u4IX4DI+|8tTZJ23C%ba%~=*D zEzR@d%LP>M49B%hozi8`7X=#EPYT1QsNp+q$cs*vY~L)1=#+3h)3H%kl+oP0@CR`> zi8GFSs^3Ss=_OxOmxvh)cA!oDo+k>rRnC~cC6*K`?3C~f*DSJXy)fz6GiJWzYJVm! z6g9hCziz@s77V{$kaUV=*UZn}MU-*1oG56u!Bl)qmMp*I);J#|tD2Y*+ZV1=Obhq4 zX$X&!PGQRQOuaVVp^}-a_a{tgy;?@NyD2=M3v@t}Q0PFjC*fOHf!_l#UOtp}9hA}^bOK!J9nYIm8 zQOfj+mR24^$+hzuwJK4e+pf?$S>U6l?rLs1ftyiYOb;p4UOjd7%gd^|D;D2Pv_qk- zx)Ik6Etl)=?Tz<#Cwk($y7j$craO^~^=Q397<+O8?|?$9;<$40CojuY(k^aIzEp{} z@NJWcY<%9;iervFFlPu^&6!!(IpYPFWA#nuD{C`&3A}*`te;G$(x1McSQwr;KKS|m z)UEG2Z-38AjD6Xo9)51wLkQQ)rW~VG5Vr4SQCB6+Qqz7ZXF428PZq__zgaK4EdCWU zM?aaBb&*|uF%)w;2k~E|x$r$@-`?V}%A98fUAWFl{8<&#E`kcx5KeMq8nT&A>D|em}!dAbOJa)lNgQA zINsM2=*MUfW2Vmx9F-90j-o#L{6 zl5%Gc(oyW8OMhG{6K5udAL5dYDcEqKx8!3SFKMjWc+Ym|bCkZ+wGoqrJZgBI@pGq) z^uhX3aDmlLq%z|Rsq<`^m#*dIQbpdHTXZn#i#Di@cxhL-Wm7iNhc2h9dGce%gl5z=V00Jg3V&Dfd13-Kr;Db=3m16=>45YXj{{LqI(##D&ViXMP5Wp7yJfrbHtm7Qn zb5ryT8RL>3hcE&K_bfD-=aClew$H}p!7ar%_hITlav+Qh948u~3n5F7vWG|rV9WoY zS`oSY2k}APL8pg^7e}3mCj>_0A5Y+n0I7fP|GkHo@1rI92#9f1FM`T+DNg;5sG_61 zkrD!+_%G))WCUe>4hDuEP6oF?E`|k7Ape8f05A;V!+<21@$LYK(%q#8PdlS!2{>Se z6anh?;{u~)1Fn!6KH~WLe@Z}a>icBoWqanO<~owt0XU6sw@v1;sM3-eBMaVvt#*U}%K^@6dAYsB5Vl0syQsa#H{R literal 0 HcmV?d00001 From 15af42e6beed0dd97f0fb48f62ac776de635eefb Mon Sep 17 00:00:00 2001 From: James Crowley Date: Thu, 19 Feb 2015 16:48:46 +0000 Subject: [PATCH 8/9] Improve NuGet error messages --- src/app/FakeLib/NuGet/NugetHelper.fs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/FakeLib/NuGet/NugetHelper.fs b/src/app/FakeLib/NuGet/NugetHelper.fs index 42dcafe3603..f40b2ff0915 100644 --- a/src/app/FakeLib/NuGet/NugetHelper.fs +++ b/src/app/FakeLib/NuGet/NugetHelper.fs @@ -240,11 +240,11 @@ let private pack parameters nuspecFile = let execute args = let result = - ExecProcess (fun info -> + ExecProcessAndReturnMessages (fun info -> info.FileName <- parameters.ToolPath info.WorkingDirectory <- FullName parameters.WorkingDir info.Arguments <- args) parameters.TimeOut - if result <> 0 then failwithf "Error during NuGet package creation. %s %s" parameters.ToolPath args + if result.ExitCode <> 0 then failwithf "Error during NuGet package creation. %s %s\r\n%s" parameters.ToolPath args (toLines result.Errors) let nuspecFile = let fi = fileInfo nuspecFile From e19be10d094ffbf9db10b4e326b729763080564c Mon Sep 17 00:00:00 2001 From: James Crowley Date: Thu, 19 Feb 2015 17:14:48 +0000 Subject: [PATCH 9/9] Hack around the fact that you cannot currently nuget pack on a VS project file on mono --- .../Test.FAKECore/PackageMgt/NugetSpecs.cs | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs index 6aba2c2afca..fa89fc11e68 100644 --- a/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs +++ b/src/test/Test.FAKECore/PackageMgt/NugetSpecs.cs @@ -58,10 +58,8 @@ public class when_packing_with_nuspec_template }; Because of = () => NuGetHelper.NuGetPack(nugetParams, nuspecFile); - It should_create_nupkg_file = () => - { - File.Exists(pkgFile).ShouldBeTrue(); - }; + + It should_create_nupkg_file = () => File.Exists(pkgFile).ShouldBeTrue(); } public class when_packing_with_csproj_and_complete_nuspec_alongside @@ -113,10 +111,20 @@ public class when_packing_with_csproj_and_complete_nuspec_alongside ); }; - Because of = () => NuGetHelper.NuGetPack(nugetParams, projectFile); + + private Because of = () => + { + if (!EnvironmentHelper.isMono) + { + NuGetHelper.NuGetPack(nugetParams, projectFile); + }; + }; It should_create_nupkg_file = () => { - File.Exists(pkgFile).ShouldBeTrue(); + if (!EnvironmentHelper.isMono) + { + File.Exists(pkgFile).ShouldBeTrue(); + } }; }