Запуск программного обеспечения, созданного для .NET 3.5, в системе с установленным только .NET 2.0 - PullRequest
9 голосов
/ 05 октября 2009

Как далеко продвигается программное обеспечение, скомпилированное для .NET 3.5, до сбоя в системе, в которой установлен только .NET 2.0?

Приложение, которое я разрабатываю, использует WPF и требует .NET 3.5, но я хотел бы отобразить удобный для пользователя диалог (а не сбой), если у пользователя его нет.

Существуют ли стандартные способы сделать это или официальная документация Microsoft по этому вопросу?


РЕДАКТИРОВАТЬ : В идеальном мире я бы просто проверял, удовлетворяются ли любые зависимости .NET во время установки. Поскольку некоторые приложения не имеют установщиков и пользователи могут потенциально удалить .NET после установки приложения, я считаю полезными ответы ниже.

Ответы [ 3 ]

6 голосов
/ 05 октября 2009

Он (вероятно) не потерпит крах, пока не попытается использовать dll, которому требуется 3.5. Если исполняющее приложение может проверить версию, прежде чем использовать какие-либо 3.5 определенные dll, вы можете отобразить диалоговое окно winform, и вы должны быть в порядке. Ваша самая безопасная ставка - сделать exe-сборку 2.0 и собрать все ваши 3.5 штуки в отдельную dll, скомпилированную с 3.5. Вы можете выполнить проверку в dll 2.0 до того, как он загрузит любую из ваших 3.5 сборок.

3 голосов
/ 05 октября 2009

Рассматривали ли вы использование развертывания ClickOnce? Агент проверит и установит все необходимые компоненты, включая .Net. Это также позволяет безболезненно продвигать обновления вашего приложения.

3 голосов
/ 05 октября 2009

.NET 3.5 использует среду выполнения .NET 2.0, поэтому приложение прекрасно запускается (однако завершится с ошибкой при попытке загрузить сборки 3.5). Вы можете проверить Environment.Version , чтобы увидеть, работает ли он на .NET 3.5, и представить пользователю стандартный MessageBox.Show, если нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...