Я использую метод, опубликованный Brock Adams, и он даже работает в Firefox, если он инициирован пользователем.
open(location, '_self').close();
Я вызываю его нажатием на кнопку, поэтому он инициируется пользователем, и это все еще работает отлично, используя Chrome 35-40, Internet Explorer 11, Safari 7-8 и ALSO Firefox 29-35. Я тестировал версию 8.1 Windows и Mac OS X 10.6, 10.9 и amp; 10.10 если это другое.
Полный код:
HTML:
JavaScript:
function quitBox(cmd)
{
if (cmd=='quit')
{
open(location, '_self').close();
}
return false;
}
Попробуйте следующую тестовую страницу: (Теперь протестировано в Chrome 40 и Firefox 35)
http://browserstrangeness.bitbucket.io/window_close_tester.htm
Я создал многочисленный MSIs с VS 2005 Pro, которые делают это правильно.
Вы уверены, что свойство 'Version' проекта развертывания было увеличено? Это свойство независимо от версии блоков в приложении, и это - сообщение об ошибке, которое Вы будете видеть, совпадает ли свойство Version MSI с ним, был для того, который Вы пытаетесь перезаписать.
Увеличьте номер версии на своем проекте.
В VS выберите узел для своего приложения установки и поразите F4 для просмотра свойств. Найдите поле версии и увеличьте его.
Необходимо изменить ProductCode между каждой версией, если Вы не сделаете этого, то Вы получите поведение, которое Вы видите. ProductCode замечен в свойствах проекта. Проверьте MSDN Справка Онлайн для ProductCode для понимания лучше.
Имела такую же проблему при переходе от XP к Win7. Чтобы решить ее, мне пришлось установить DetectNewerInstalledVersion на False. Также, как уже упоминалось другими, нужно включить версию проекта установки.
Удачи.
.