Вы действительно имеете libdeprecated-ruby
(2010-2012, не доступный больше на rubygem в 2015)
А, небольшая библиотека намеревалась помочь разработчикам, работающим с кодом устаревшим.
идея прибывает из' D
' язык программирования, где разработчики могут отметить определенный код, как удерживается от использования и затем позволить/запретить способности выполнить удержанный от использования код.
require 'lib/deprecated.rb'
require 'test/unit'
# this class is used to test the deprecate functionality
class DummyClass
def monkey
return true
end
deprecate :monkey
end
# we want exceptions for testing here.
Deprecate.set_action(:throw)
class DeprecateTest < Test::Unit::TestCase
def test_set_action
assert_raise(DeprecatedError) { raise StandardError.new unless DummyClass.new.monkey }
Deprecate.set_action(proc { |msg| raise DeprecatedError.new("#{msg} is deprecated.") })
assert_raise(DeprecatedError) { raise StandardError.new unless DummyClass.new.monkey }
# set to warn and make sure our return values are getting through.
Deprecate.set_action(:warn)
assert_nothing_raised(DeprecatedError) { raise StandardError.new unless DummyClass.new.monkey }
end
end
Элемент ServiceInstall в конечном итоге будет указывать на «KeyPath» компонента, в котором находится ServiceInstall. По умолчанию набор инструментов WiX выбирает первый элемент File или RegistryKey в вашем компоненте в качестве KeyPath. Когда вы добавляли файлы в свой компонент, .dll в верхней части списка становилась KeyPath.
В общем, меньшие компоненты лучше, чем большие. Поэтому лучшим решением было бы разместить ваши DLL в отдельных компонентах. Затем вы можете оставить элемент .exe File и элемент ServiceInstall в одном компоненте. Это делает все очень чистым.
Если затем вы хотите, чтобы «служба» была сгруппирована вместе, вы можете создать элемент ComponentGroup и поместить ComponentRefs в компоненты .exe и .dll. Теперь у вас есть одна вещь, на которую вы можете ссылаться из Feature / ComponentGroupRef.