Почему Visual Studio 2010 требует установки с MSI и перезагрузки только для того, чтобы заставить его работать, где Eclipse, основанный на аналогичной архитектуре (JVM вместо CLR), требует просто вставить файлы где-нибудь на диск.

Я могу согласиться с необходимостью установить .Net 4.0 через MSI (точно так же, как Java), но почему сама Visual Studio не может быть "установлена", как Eclipse?

3 ответа3

5

Я считаю, что полная установка включает в себя такие вещи, как MS SQL Server, который имеет компоненты, которые работают как службы. Я не удивлен, если они не слишком беспокоятся о перезагрузке разработчика, вместо того, чтобы организовать правильное завершение работы этих служб перед установкой и перезапустить их после.

Кроме того, многие из их продуктов для разработчиков исторически настраивали переменную PATH и другие переменные среды, и вместо того, чтобы принимать вызовы поддержки от людей, стремящихся погрузиться в игру и увидеть, как работает Hello World или в процессе, они, похоже, предпочитают принудительную перезагрузку как Самый простой способ гарантировать, что командная строка и запущенная копия Explorer совпадают.

1

Есть, вероятно, множество причин. Однако, основываясь на установке предыдущей версии Visual Studio, одной из причин является перезапись определенных библиотек DLL, которые могут быть использованы.

Например, библиотека времени выполнения C (dll) может в настоящее время использоваться некоторыми процессами. Перезагрузка необходима для того, чтобы сценарий запуска при загрузке мог скопировать DLL (с более новой версией), прежде чем какой-либо процесс загрузит DLL.

1

Перезапуск такая большая проблема для вас?

Visual Studio - это очень сложный набор программного обеспечения, который поставляется с множеством дополнительных компонентов, таких как Microsoft SQL Server, Crystal Reports и т.д. Также необходимо зарегистрировать себя в качестве отладчика и многих библиотек DLL, что также может вызвать перезагрузку системы. Eclipse не регистрирует глобальный отладчик приложений и не регистрирует DLL.

Кроме того, архитектура .NET полностью отличается от архитектуры Java, вы не можете сравнивать такие абстрактные части фреймворков.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .