Я пытаюсь вызвать Installer.Install вручную:Installer.Install (IDictionary stateSaver): Какой тип словаря ожидается?
ProjectInstaller installer = new ProjectInstaller();
installer.Install(new Dictionary<int, int>());
Проблема:
System.ArgumentException was unhandled.
The value "_reserved_lastInstallerAttempted" is not of type "System.Int32"
and cannot be used in this generic collection.
at System.ThrowHelper.ThrowWrongKeyTypeArgumentException(Object key, Type targetType)
at System.Collections.Generic.Dictionary`2.System.Collections.IDictionary.Add(Object key, Object value)
at System.Configuration.Install.Installer.Install(IDictionary stateSaver)
at CSShellExtContextMenuHandler.ProjectInstaller.Install(IDictionary stateSaver) in C:\Users\win7pro32bit\Documents\lab\CSShellExtContextMenuHandler\ProjectInstaller.cs:line 40
at Starter.Program.Main(String[] args) in C:\Users\win7pro32bit\Documents\lab\Starter\Program.cs:line 14
В качестве параметра я попытался new Dictionary<int, int>
, new Dictionary<string, string>
, и другие, но ни один не работает. documentation не помогает. Что ожидается?
'new Hashtable()' сделал трюк, спасибо! –
Добро пожаловать, рад, что это сработало. .NET Reflector делает свою магию еще раз! –
Множество кода набора инструментов WiX было написано в NETFX v1.1 дня, поэтому старые классы коллекций распространены. :) –