Для моего таможенного контроля мне нужно добавить следующий атрибут к AssemblyInfo.cs:Как добавить атрибут ThemeInfo в AssemblyInfo.cs с FAKE?
using System.Windows;
[assembly: ThemeInfo(ResourceDictionaryLocation.None,
ResourceDictionaryLocation.SourceAssembly
)]
ли это как-то можно с имеющимися вариантами поддельными или нуждается ли она в другой реализации атрибута?
Решение: Как упомянуто AlexM UpdateAttribute является ключом, где ThemeAttribute уже в AssemblyInfo. Здесь шанс окончательный код для справки с помощью дефолтов ProjectScaffold:
Target "AssemblyInfo" (fun _ ->
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 -> UpdateAttributes (folderName </> "AssemblyInfo.fs") attributes
| Csproj -> UpdateAttributes ((folderName </> "Properties") </> "AssemblyInfo.cs") attributes
| Vbproj -> UpdateAttributes ((folderName </> "My Project") </> "AssemblyInfo.vb") attributes
| Shproj ->()
)
)
Почему бы не иметь этот атрибут от начала, почему вам нужно поддельные, чтобы установить это, я обычно обновлять AssemblyInfo атрибутов с них, как 'CLSCompliant' , 'Copyright' и т. Д. –
Я использовал ProjectScaffold для скрипта сборки, а задача AssemblyInfo создает весь файл. Но, по крайней мере, хорошая идея. Я думаю, что есть функции UpdateAttribute. Я проверю. Насколько я вижу, проблема с текущим CreateCSharpAssemblyInfo заключается в том, что в качестве значений могут использоваться только строки. Для перечислений потребуются некоторые изменения кода. – KCT