Skip to content

Commit

Permalink
try not to set binding redirects multiple times - closes 4134
Browse files Browse the repository at this point in the history
  • Loading branch information
forki committed Mar 30, 2022
1 parent 3255c1d commit c3f7fc1
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 14 deletions.
3 changes: 3 additions & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
#### 7.1.3 - 2022-03-30
* Do not set binding redirects all the time - https://github.com/fsprojects/Paket/issues/4134

#### 7.1.2 - 2022-03-29
* NuGet Cache: avoid duplicate nupkg file - https://github.com/fsprojects/Paket/pull/4135

Expand Down
5 changes: 1 addition & 4 deletions src/Paket.Core/Installation/BindingRedirects.fs
Original file line number Diff line number Diff line change
Expand Up @@ -159,10 +159,7 @@ let private applyBindingRedirects isFirstGroup cleanBindingRedirects (allKnownLi
use f = File.Open(configFilePath, FileMode.Create)
config.Save(f, SaveOptions.DisableFormatting)

match projectFile.OutputType, projectFile.GetAutoGenerateBindingRedirects() with
| ProjectOutputType.Exe, _ -> ignore()
| _, Some x when x.ToLower() = "true" -> ignore()
| _, _ -> projectFile.SetOrCreateAutoGenerateBindingRedirects()
projectFile.SetOrCreateAutoGenerateBindingRedirects()

let findAllReferencesFiles root =
let findRefFile (p:ProjectFile) =
Expand Down
22 changes: 12 additions & 10 deletions src/Paket.Core/PaketConfigFiles/ProjectFile.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1694,15 +1694,19 @@ module ProjectFile =
Kind = NugetPackageKind.DotnetCliTool
TargetFramework = None })

let getAutoGenerateBindingRedirects (project:ProjectFile) = getProperty "AutoGenerateBindingRedirects" project
let setOrCreateAutoGenerateBindingRedirects (project:ProjectFile) =
match getAutoGenerateBindingRedirects project with
| Some _ -> project.Document
|> getDescendants "AutoGenerateBindingRedirects"
|> List.iter(fun x -> x.InnerText <- "true")
| _ -> match project.Document |> getDescendants "PropertyGroup" with
| x :: _ -> x.AppendChild (createNodeSet "AutoGenerateBindingRedirects" "true" project) |> ignore
| _ -> ()
let nodes = project.Document |> getDescendants "PropertyGroup"
let mutable found = false
for node in nodes do
for autoNode in node |> getDescendants "AutoGenerateBindingRedirects" do
found <- true
autoNode.InnerText <- "true"

if not found then
match nodes with
| x :: _ ->
x.AppendChild (createNodeSet "AutoGenerateBindingRedirects" "true" project) |> ignore
| _ -> ()

save false project

Expand Down Expand Up @@ -1800,8 +1804,6 @@ type ProjectFile with

member this.GetAssemblyName () = ProjectFile.getAssemblyName this

member this.GetAutoGenerateBindingRedirects() = ProjectFile.getAutoGenerateBindingRedirects this

member this.SetOrCreateAutoGenerateBindingRedirects() = ProjectFile.setOrCreateAutoGenerateBindingRedirects this

static member LoadFromStream(fullName:string, stream:Stream) = ProjectFile.loadFromStream fullName stream
Expand Down

0 comments on commit c3f7fc1

Please sign in to comment.