Я экспериментировал с Rake и Albacore, чтобы посмотреть, смогу ли я заменить наш существующий сценарий MSBuild, который развертывает программное обеспечение, чем-то, что не является XML. У меня есть задача, которая изменит значение отладки внутри web.config
на false
. Задача принимает каталог web.config
в качестве аргумента, но я не могу понять синтаксис, необходимый для предоставления этого аргумента в задаче по умолчанию.
require 'albacore'
require 'nokogiri'
deployment_path = 'c:/test-mars-deploy'
task :default => [ :build, :publish, :update_web_config['c:/test-mars-deploy'] ]
task :update_web_config, :deploy_path do |t, args|
deployment_path = #{args[:deploy_path]}
web_config_path = File.join deployment_path, 'Web.config'
File.open(web_config_path, 'r+') do |f|
doc = Nokogiri::XML(f)
puts 'finding attribute'
attribute = doc.xpath('/configuration/system.web/compilation')
attribute.attr('debug', 'false')
puts attribute.to_xml
end
File.delete(web_config_path)
File.new(web_config_path, 'w') do |f|
f.write(doc.to_s)
end
end