@@ -207,7 +207,7 @@ type AssemblyInfoReplacementParams =
207
207
AssemblyFileVersion : string
208
208
AssemblyInformationalVersion : string
209
209
AssemblyConfiguration : string
210
- AssemblyMetadata : string list }
210
+ AssemblyMetadata : ( string * string ) list }
211
211
212
212
/// AssemblyInfoReplacement default params
213
213
let AssemblyInfoReplacementDefaults =
@@ -224,18 +224,29 @@ let ReplaceAssemblyInfoVersions param =
224
224
let replaceAttribute attributeName value line =
225
225
if isNullOrEmpty value then line
226
226
else regex_ replace ( sprintf " %s \\ s*[(][^)]*[)]" attributeName) ( sprintf " %s (\" %s \" )" attributeName value) line
227
-
228
- let metadaData =
229
- if parameters.AssemblyMetadata = [] then " " else
230
- ( String.Join( " \" , \" " , parameters.AssemblyMetadata))
227
+
228
+ let rec replaceMetadataAttributes metadata line =
229
+ let replaceSingleMetadataAttribute key value line =
230
+ if isNullOrEmpty key then line
231
+ else
232
+ regex_ replace
233
+ ( sprintf " AssemblyMetadata\\ s*\\ (\\ s*\" %s \"\\ s*,[^)]*\\ )" key)
234
+ ( sprintf " AssemblyMetadata(\" %s \" , \" %s \" )" key value)
235
+ line
236
+ match metadata with
237
+ | ( key, value) :: rest ->
238
+ line
239
+ |> replaceSingleMetadataAttribute key value
240
+ |> replaceMetadataAttributes rest
241
+ | _ -> line
231
242
232
243
let replaceLine line =
233
244
line
234
245
|> replaceAttribute " AssemblyVersion" parameters.AssemblyVersion
235
246
|> replaceAttribute " AssemblyConfiguration" parameters.AssemblyConfiguration
236
247
|> replaceAttribute " AssemblyFileVersion" parameters.AssemblyFileVersion
237
248
|> replaceAttribute " AssemblyInformationalVersion" parameters.AssemblyInformationalVersion
238
- |> replaceAttribute " AssemblyMetadata" metadaData
249
+ |> replaceMetadataAttributes parameters. AssemblyMetadata
239
250
240
251
ReadFile parameters.OutputFileName
241
252
|> Seq.map replaceLine
0 commit comments