国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境

這篇具有很好參考價值的文章主要介紹了Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1、下載Inno Setup

官網(wǎng)鏈接: link

2、新建打包文件、開始打包

1、新建打包文件

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

2、填寫 應(yīng)用名稱、版本號、公司名稱、公司官網(wǎng)

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

3、選擇安裝路徑 Custom是指定默認路徑、Program Files folder是默認C盤根目錄

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

4、選擇程序啟動exe文件 以及Addfolder選擇全部運行文件

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

5、選擇安裝前顯示文字 、安裝中、安裝后

這里我只選擇了安裝前顯示條款
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

6、安裝模式

管理員安裝(所有用戶均可安裝)
僅限當前用戶安裝
命令覆蓋安裝
啟動時選擇安裝模式
這里我默認管理員
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

7、選擇安裝語言

這里我選擇的簡體中文、默認沒有的需要自己去網(wǎng)上找語言包
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

8、輸出信息

輸出文件位置
打包文件名稱
打包后的文件圖標
打包文件密碼
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

至此不需要判斷環(huán)境的設(shè)置完成、一路點擊next就行

3、需要判斷安裝時的環(huán)境

在【Files】添加如下代碼
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net
注意這個路徑是你自己離線環(huán)境的位置 最好放置到打包文件中 D:\Desktop\打包\DELIN_SVIEW\OutPut\VC_redist.x64.exe。

Source: "D:\Desktop\打包\DELIN_SVIEW\OutPut\VC_redist.x64.exe";DestDir:"{tmp}";DestName:"vcredistx64.exe";Flags:ignoreversion
Source: "D:\Desktop\打包\DELIN_SVIEW\OutPut\ndp472-kb4054530-x86-x64-allos-enu.exe";DestDir:"{tmp}";DestName:"dotnet472.exe";Flags:ignoreversion

在【Code】添加如下代碼

[Code]

//vc++ 安裝環(huán)境檢查 plat:x64 x86
function IsVCPPDetected(version:string;plat:string): Boolean;
var 
    success: Boolean;
    key,versionkey:string;
    build,versionBuild:cardinal;
begin
    versionkey:=version;
    versionBuild:=0;

    case version of        
        '13':
            begin
            versionkey:='12.0';
            versionBuild:=40660;
            end;

        '15':
            begin
            versionkey:='14.0';
            versionBuild:=23026;
            end;
        '19':
            begin
            versionkey:='14.0';
            versionBuild:=28720;
            end;

    end;

    key:='SOFTWARE\Wow6432Node\Microsoft\VisualStudio\'+versionkey+'\VC\Runtimes\'+plat;

    success:=RegQueryDWordValue(HKLM, key, 'Bld', build);
    success:=success and (build>=versionBuild);

    result := success;
end;

//.net framework安裝檢查 —— 判斷指定的.NET Framework版本及service pack是否已經(jīng)安裝
// 函數(shù)參數(shù)說明:
// 參數(shù)1:version -- 指定待判斷的.NET Framework版本【下面列舉了對應(yīng)關(guān)系】:
//    'v1.1'          .NET Framework 1.1
//    'v2.0'          .NET Framework 2.0
//    'v3.0'          .NET Framework 3.0
//    'v3.5'          .NET Framework 3.5
//    'v4\Client'     .NET Framework 4.0 Client Profile
//    'v4\Full'       .NET Framework 4.0 Full Installation
//    'v4.5'          .NET Framework 4.5
//    'v4.5.1'        .NET Framework 4.5.1
//    'v4.5.2'        .NET Framework 4.5.2
//    'v4.6'          .NET Framework 4.6
//    'v4.6.1'        .NET Framework 4.6.1
//    'v4.6.2'        .NET Framework 4.6.2
//    'v4.7'          .NET Framework 4.7
//    'v4.7.1'        .NET Framework 4.7.1
//    'v4.7.2'        .NET Framework 4.7.2
//    `v4.8`          .NET Framework 4.8
//
// 參數(shù)2:service -- 指定待判斷的service pack版本:
//    0               No service packs required
//    1, 2, etc.      Service pack 1, 2, etc. required
function IsDotNetDetected(version: string; service: cardinal): boolean;
var
    key, versionKey: string;
    install, release, serviceCount, versionRelease: cardinal;
    success: boolean;
begin
    versionKey := version;
    versionRelease := 0;

    // .NET 1.1 and 2.0 embed release number in version key
    if version = 'v1.1' then begin
        versionKey := 'v1.1.4322';
    end else if version = 'v2.0' then begin
        versionKey := 'v2.0.50727';
    end

    // .NET 4.5 and newer install as update to .NET 4.0 Full
    else if Pos('v4.', version) = 1 then begin
        versionKey := 'v4\Full';
        case version of
        'v4.5':   versionRelease := 378389;
        'v4.5.1': versionRelease := 378675; // 378758 on Windows 8 and older
        'v4.5.2': versionRelease := 379893;
        'v4.6':   versionRelease := 393295; // 393297 on Windows 8.1 and older
        'v4.6.1': versionRelease := 394254; // 394271 before Win10 November Update
        'v4.6.2': versionRelease := 394802; // 394806 before Win10 Anniversary Update
        'v4.7':   versionRelease := 460798; // 460805 before Win10 Creators Update
        'v4.7.1': versionRelease := 461308; // 461310 before Win10 Fall Creators Update
        'v4.7.2': versionRelease := 461808; // 461814 before Win10 April 2018 Update
        'v4.8': versionRelease := 528040;
        end;
    end;

    // installation key group for all .NET versions
    key := 'SOFTWARE\Microsoft\NET Framework Setup\NDP\' + versionKey;

    // .NET 3.0 uses value InstallSuccess in subkey Setup
    if Pos('v3.0', version) = 1 then begin
        success := RegQueryDWordValue(HKLM, key + '\Setup', 'InstallSuccess', install);
    end else begin
        success := RegQueryDWordValue(HKLM, key, 'Install', install);
    end;

    // .NET 4.0 and newer use value Servicing instead of SP
    if Pos('v4', version) = 1 then begin
        success := success and RegQueryDWordValue(HKLM, key, 'Servicing', serviceCount);
    end else begin
        success := success and RegQueryDWordValue(HKLM, key, 'SP', serviceCount);
    end;

    // .NET 4.5 and newer use additional value Release
    if versionRelease > 0 then begin
        success := success and RegQueryDWordValue(HKLM, key, 'Release', release);
        success := success and (release >= versionRelease);
    end;

    result := success and (install = 1) and (serviceCount >= service);
end;

//安裝包初始化                      
function CheckDotNet(): Boolean;
var Path:string ; 
    ResultCode: Integer; 
    Success:Boolean;
begin
    Success:=true;

    if not IsDotNetDetected('v4.7.2', 0) then 
    begin
        MsgBox('軟件運行需要 Microsoft .NET Framework 4.7.2, 即將開始安裝.NET Framework。', mbInformation, MB_OK);

        ExtractTemporaryFile('dotnet472.exe');
        Path:=ExpandConstant('{tmp}\dotnet472.exe')
        Exec(Path, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

        if not IsDotNetDetected('v4.7.2', 0) then
        begin
            if  MsgBox('.Net Framework4.7.2組件安裝失敗,無法運行程序,是否繼續(xù)安裝!',mbInformation,MB_YESNO) = IDYES then
            begin
                Success:=true
            end else 
            begin
                Success := false;
                result:=Success;
                Exit;
            end;
        end
        else
            Success := true;
    end
    else
        Success := true;

    result := Success;         
end;



//安裝包初始化                      
function CheckVC(): Boolean;
var Path:string ; 
    ResultCode: Integer; 
    Success:Boolean;
begin
    Success:=true;

    if not IsVCPPDetected('19','x64') then
    begin
        MsgBox('軟件運行需要 Microsoft Visual C++ 2019 Redistributable x64, 即將開始安裝vc redist x64', mbInformation, MB_OK);

        ExtractTemporaryFile('vcredistx64.exe');
        Path:=ExpandConstant('{tmp}\vcredistx64.exe')
        Exec(Path, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);

        if not IsVCPPDetected('19','x64') then
        begin
            if MsgBox('Microsoft Visual C++ 2019 Redistributable x64組件安裝失敗,部分功能無法使用,是否繼續(xù)安裝!',mbInformation,MB_YesNo) = IDYES then
            begin
                Success:=true;
            end else begin 
                Success := false;
                result:=Success;
                Exit;
            end;
        end
        else begin end;
    end;

    result := Success;         
end;

function InitializeSetup: Boolean;
begin
  Result := CheckDotNet();
  Result := CheckVC();
end;

最后點擊運行即可
Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net

Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境,wpf,c++,.net
跑完就會生成.exe文件在你 第八步 指定的輸出目錄下文章來源地址http://www.zghlxwxcb.cn/news/detail-599725.html

到了這里,關(guān)于Inno Setup打包winform、wpf程序可判斷VC++和.net環(huán)境的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Visual Studio 2022 WinForm/Wpf打包安裝程序

    Visual Studio 2022 WinForm/Wpf打包安裝程序

    方法1.手動下載安裝包: Microsoft Visual Studio Installer Projects 2022 方法2.Visual Studio中安裝 菜單欄中選中【擴展】-【管理擴展】-【聯(lián)機】中搜索Microsoft Visual Studio Installer并安裝 在當前解決方案下添加-新建項目-Setup Project 項目添加成功之后,將需要打包的項目生成后的bin目錄下的

    2024年02月04日
    瀏覽(30)
  • Inno SetUp安裝包:如何在程序安裝時卸載驅(qū)動程序

    如果您想通過命令行卸載.INF文件的驅(qū)動程序,您需要使用PnPUtil命令。以下是一個示例: pnputil /delete-driver oem0.inf /uninstall 在這個示例中, oem0.inf 應(yīng)該被替換為您要卸載的驅(qū)動程序的.inf文件。使用 pnputil /enum-drivers 命令可以列出已安裝驅(qū)動程序的列表。 請注意,你需要以管理

    2024年02月16日
    瀏覽(21)
  • 如何使用Inno Setup制作Unity構(gòu)建程序的Windows安裝程序

    如何使用Inno Setup制作Unity構(gòu)建程序的Windows安裝程序

    必須包括: Data文件夾(xxx_Data) Mono文件夾(MonoBleedingEdge) 打包的應(yīng)用程序文件(xxx.exe) Unity播放器dll文件(UnityPlayer.dll) 可選包括: Unity程序崩潰處理(UnityCrashHandler64.exe) 下載地址:https://jrsoftware.org/isdl.php 找到Stable Release,點擊Download Sites的“US”下載 運行安裝程序

    2024年03月17日
    瀏覽(43)
  • Inno Setup簡介

    Inno Setup簡介

    簡易打包: 選擇使用向?qū)?chuàng)建一個新的腳本 填好圖中的安裝包名稱、安裝版本、安裝包發(fā)布者、安裝包的相關(guān)網(wǎng)站,安裝包名稱和版本是必填的,剩下那兩個可以選填。 第一個是應(yīng)用程序目標基本文件夾可以選擇,第二個是應(yīng)用程序文件夾名稱,就是安裝時新建的安裝目錄

    2024年02月09日
    瀏覽(20)
  • 一個.Net強大的Excel控件,支持WinForm、WPF、Android【強烈推薦】

    一個.Net強大的Excel控件,支持WinForm、WPF、Android【強烈推薦】

    推薦一個強大的電子表單控件,使用簡單且功能強大。 這是一個開源的表格控制組件,支持Winform、WPF和Android平臺,可以方便的加載、修改和導(dǎo)出Excel文件,支持數(shù)據(jù)格式、大綱、公式計算、圖表、腳本執(zhí)行等、還支持觸摸滑動,可以方便地操作表格。 總的來說是一個可以快

    2024年02月07日
    瀏覽(30)
  • Inno Setup實現(xiàn)軟件開機自動運行的兩種方法

    Inno Setup實現(xiàn)軟件開機自動啟動的兩種方法 在許多情況下,我們希望我們的軟件能夠在操作系統(tǒng)啟動時自動啟動。對于 Windows 操作系統(tǒng),可以通過將程序添加到啟動組或在注冊表的 Run 項中創(chuàng)建值來實現(xiàn)此目的。 有兩種不同的方法可以做到這一點: 方法一:在啟動組中創(chuàng)建快

    2024年02月06日
    瀏覽(31)
  • 有關(guān) Inno Setup 的實踐:檢查并安裝依賴,運行時退出安裝或卸載

    如題,檢測 Microsoft Visual C++ 2015 Redistributable (x64) 依賴并安裝,若程序安裝或卸載時應(yīng)用運行中將檢測并退出 所需依賴 Microsoft Visual C++ 2015 Redistributable (x64) Microsoft 官網(wǎng)下載 psvince.dll Github 下載 編輯 iss 文件

    2024年01月24日
    瀏覽(22)
  • VS2019 打包桌面應(yīng)用程序詳細步驟,包含運行環(huán)境(.NET Framework)

    VS2019 打包桌面應(yīng)用程序詳細步驟,包含運行環(huán)境(.NET Framework)

    本篇教程基于VS擴展插件Microsoft Visual Studio Installer Projects工具來打包, 在VS工具中進行安裝,菜單欄【擴展(X)】 -- 【管理擴展】,在界面中輸入Installer,找到Microsoft Visual Studio Installer Projects,點擊下載 在解決方案上右鍵 –【添加】--【新建項目】– 【Setup Project】,

    2024年02月04日
    瀏覽(23)
  • 補齊 windows 運行庫和運行環(huán)境(VC++、DirectX、.Net)

    安裝一些應(yīng)用時,可能會缺少各種庫文件導(dǎo)致軟件崩潰報錯。缺少的主要有三類:vc++、directx、.net。 這是最基本的庫。 下載鏈接: 最新受支持的 Visual C++ 可再發(fā)行程序包下載 DirectX(Direct eXtension)是由微軟公司創(chuàng)建的多媒體編程接口。 簡單來說這個是和圖形圖像有關(guān)的。啟

    2024年02月15日
    瀏覽(45)
  • C#如何打包EXE程序生成setup安裝文件

    C#如何打包EXE程序生成setup安裝文件

    項目結(jié)束之后,有需要將winForm程序打包成.exe文件提供給用戶。 這里記錄一下打包過程。 1:首先獲取打包插件,如果你的VS已經(jīng)安裝,忽略此步驟。 點擊 工具-擴展和更新,選擇聯(lián)機,搜索installer,安裝。 Vs2010以上版本基本上都有安裝。 2:創(chuàng)建一個安裝向?qū)ы椖?創(chuàng)建過程

    2024年02月12日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包