Я использую следующие appcmd чтобы добавить autoStartProvider в список autoStartProviders:
appcmd.exe set config -section:system.applicationHost/serviceAutoStartProviders /+"[name='MyAutoStartup',type='PreWarmCache, MyAssembly, version=1.0.0.0, Culture=neutral, PublicKeyToken=null']" /commit:apphost
Запускаем скрипт первый раз, все работает исправно. Но при повторном запуске скрипта жалуется, что «MyAutoStartup» уже существует. Я знаю, что могу очистить коллекцию, используя:
appcmd.exe clear config -section:system.applicationHost/serviceAutoStartProviders -commit:apphost
но это было бы удалить все ключи, а не только MyAutoStart.
Есть ли способ удалить только MyAutoStart если он присутствует?
После экспериментов я обнаружил, что работала следующая команда:
appcmd.exe set config -section:system.applicationHost/serviceAutoStartProviders /-"[name='MyAutoStartup',type='PreWarmCache, MyAssembly, version=1.0.0.0, Culture=neutral, PublicKeyToken=null']" /commit:apphost
В основном это замена "/ +" на "/ -"