diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index 8695aeeb..1976ce3d 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,3 +1,6 @@
+### 4.2.0
+* Migrate to SourceLink 2.0
+
### 4.1.0
* Add AppSettings configuration reader support for NetStandard.
diff --git a/build.fsx b/build.fsx
index 1929277b..d686ecf0 100644
--- a/build.fsx
+++ b/build.fsx
@@ -19,6 +19,8 @@ open Fake.Testing
let project = "Argu"
+let summary = "A declarative command line and XML configuration parser for F# applications."
+
let gitOwner = "fsprojects"
let gitName = "Argu"
let gitHome = "https://github.com/" + gitOwner
@@ -43,12 +45,31 @@ Target "BuildVersion" (fun _ ->
Shell.Exec("appveyor", sprintf "UpdateBuild -Version \"%s\"" nugetVersion) |> ignore
)
-// Generate assembly info files with the right version & up-to-date information
Target "AssemblyInfo" (fun _ ->
- let fileName = "./src/Argu/AssemblyInfo.fs"
- CreateFSharpAssemblyInfo fileName
- [ Attribute.Version release.AssemblyVersion
- Attribute.FileVersion release.AssemblyVersion ]
+ let getAssemblyInfoAttributes projectName =
+ [ Attribute.Title projectName
+ Attribute.Product project
+ Attribute.Description summary
+ Attribute.Version release.AssemblyVersion
+ Attribute.FileVersion release.AssemblyVersion ]
+
+ let getProjectDetails projectPath =
+ let projectName = System.IO.Path.GetFileNameWithoutExtension(projectPath)
+ ( projectPath,
+ projectName,
+ System.IO.Path.GetDirectoryName(projectPath),
+ (getAssemblyInfoAttributes projectName)
+ )
+
+ !! "src/**/*.??proj"
+ |> Seq.map getProjectDetails
+ |> Seq.iter (fun (projFileName, projectName, folderName, attributes) ->
+ match projFileName with
+ | Fsproj -> CreateFSharpAssemblyInfo (folderName > "AssemblyInfo.fs") attributes
+ | Csproj -> CreateCSharpAssemblyInfo ((folderName > "Properties") > "AssemblyInfo.cs") attributes
+ | Vbproj -> CreateVisualBasicAssemblyInfo ((folderName > "My Project") > "AssemblyInfo.vb") attributes
+ | Shproj -> ()
+ )
)
diff --git a/src/Argu.Core/Argu.Core.fsproj b/src/Argu.Core/Argu.Core.fsproj
index da0b0dd2..4fe2b325 100644
--- a/src/Argu.Core/Argu.Core.fsproj
+++ b/src/Argu.Core/Argu.Core.fsproj
@@ -15,7 +15,7 @@
..\..\bin\Release\netstandard2.0\Argu.XML
-
+
diff --git a/src/Argu.Core/AssemblyInfo.fs b/src/Argu.Core/AssemblyInfo.fs
new file mode 100644
index 00000000..3f3ba1b8
--- /dev/null
+++ b/src/Argu.Core/AssemblyInfo.fs
@@ -0,0 +1,17 @@
+// Auto-Generated by FAKE; do not edit
+namespace System
+open System.Reflection
+
+[]
+[]
+[]
+[]
+[]
+do ()
+
+module internal AssemblyVersionInformation =
+ let [] AssemblyTitle = "Argu.Core"
+ let [] AssemblyProduct = "Argu"
+ let [] AssemblyDescription = "A declarative command line and XML configuration parser for F# applications."
+ let [] AssemblyVersion = "4.2.0"
+ let [] AssemblyFileVersion = "4.2.0"
diff --git a/src/Argu/AssemblyInfo.fs b/src/Argu/AssemblyInfo.fs
index 9bf631f9..9777321c 100644
--- a/src/Argu/AssemblyInfo.fs
+++ b/src/Argu/AssemblyInfo.fs
@@ -2,10 +2,16 @@
namespace System
open System.Reflection
-[]
-[]
+[]
+[]
+[]
+[]
+[]
do ()
module internal AssemblyVersionInformation =
- let [] AssemblyVersion = "4.1.0"
- let [] AssemblyFileVersion = "4.1.0"
+ let [] AssemblyTitle = "Argu"
+ let [] AssemblyProduct = "Argu"
+ let [] AssemblyDescription = "A declarative command line and XML configuration parser for F# applications."
+ let [] AssemblyVersion = "4.2.0"
+ let [] AssemblyFileVersion = "4.2.0"