Давайте займемся этим по одному. Если у вас есть несколько AssemblyInfo.cs
файлов, вы можете создать FileList
, который захватит их все.
assembly_info_files = FileList['./source/**/AssemblyInfo.cs']
И динамически создавать задачу assemblyinfo
для файла.
assembly_info_files.each do |file|
assemblyinfo file do |asm|
asm.input_file = file
asm.version = version
end
end
Но, я думаю, вы говорите, что у вас могут быть разные параметры для файла . Я рекомендую вам закодировать как можно больше этих свойств статически в отдельных файлах. Вам понадобится какой-то хэш хэшей файлов => {name => value}.
Если вы всегда переопределяете одни и те же свойства "property_A" и "property_B"
assembly_info_properties = {
'./source/ProjectA/AssemblyInfo.cs' => {
:copyright => '2011'
:version => '1.0.0'
},
'./source/ProjectB/AssemblyInfo.cs' => {
:copyright => '2012'
:version => '0.1.0'
}
}
assembly_info_properties.each do |file,properties|
assmeblyinfo file do |asm|
asm.input_file = file
asm.copyright = properties[:copyright]
asm.version = properties[:version]
end
end
Если вы переопределяете различные наборы свойств, используйте хэш хэшей и используйте общий custom_attributes
assembly_info_properties = {
'./source/ProjectA/AssemblyInfo.cs' => {
:Copyright => 'Someone Else (c) 2011'
},
'./source/ProjectB/AssemblyInfo.cs' => {
:Title => 'Custom Title'
}
}
assembly_info_properties.each do |file,properties|
assmeblyinfo file do |asm|
asm.input_file = file
asm.custom_attributes properties
end
end