簡體   English   中英

如何使用可能不存在的.NET Framework版本安全地檢查.NET Framework版本?

[英]How to safely check .NET Framework version using a .NET Framework version that may not exist?

我有一個使用.NET 3.5構建的應用程序。 如果用戶在沒有安裝.NET 3.5的情況下運行它,我希望能夠控制他們看到的內容,並且可能提供他們可以理解的消息(帶有指向.NET 3.5的鏈接)與未處理的異常堆棧跟蹤。 但如果他們實際上沒有.NET 3.5我的應用程序如何控制任何東西呢?

您是否認為至少安裝了某些版本的.NET?

您可以編寫一個小型加載程序以與所有版本兼容以進行檢查。

或者如果沒有安裝.NET,找到一個簡單的批處理程序(如果你願意,可以用C ++輕松完成)。

@ECHO OFF
SET FileName=%windir%\Microsoft.NET\Framework\v1.1.4322
IF EXIST %FileName% GOTO Skip
ECHO.You currently do not have the Microsoft® .NET Framework 1.1 installed.
ECHO.This is required by the setup program for MyApplication.
ECHO.
ECHO.The Microsoft® .NET Framework 1.1 will now be installed on you system.
ECHO.After completion setup will continue to install MyApplication on your system.
ECHO.
Pause
SET FileName=
Start /WAIT .\dotnetfx.exe
Start .\Setup.exe
ECHO ON
Exit
Tongue Tiedkip
SET FileName=
Start .\Setup.exe
ECHO ON
Exit

也可能有所幫助。

您可以考慮使用需要安裝3.5的安裝程序。 如果他們無法運行,這將阻止應用程序首先訪問用戶。

更好的是,您可以使用安裝程序技術,例如Wix或Visual Stuido安裝項目,它在安裝期間檢查您的軟件的所有先決條件,例如特定的.NET框架運行時。 如果沒有,它將安裝它們,或者至少告訴用戶在哪里獲取它們以及下一步該做什么

您需要一個非.NET EXE文件來檢查.NET運行時。 它可以寫在您知道目標PC中存在的任何內容中。 例如,如果以Windows 2000或更高版本為目標,您就知道Visual Basic 6.0運行時存在,因此您的安裝程序始終可以啟動Visual Basic 6.0初始應用程序,該應用程序在啟動.NET EXE文件之前檢查運行時。 更好的方法是編寫一個不依賴於Windows API之外的任何運行時的C ++應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM