最近項目需求只能斷網安裝相關軟件環境,總結了以下Visual Studio2019離線斷網安裝方法,我會非常詳細的告訴大家如何離線安裝,以及如何根據自己需要進行離線下載相關包的方法。授之以魚不如授之以漁…我會把每個部分可以參考的官網教程鏈接貼上,若需要,可進一步學習查看。
(1)先進官網下載鏈接,下載安裝包引導程序,我下載的是下面這個社區版本。
(2)可以在D盤新建一個文件夾VS2019,將下載好的.exe文件保存到該文件夾中,然后可以在VS2019文件夾內再新建一個installer文件夾,用于存放后面下載的各種離線包。
(3)在上述文件夾目錄下打開終端,輸入:
.\vs_community.exe --layout .\installer --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Component.Windows10SDK.18362 --includeRecommended --lang zh-CN
大致講解一下,我這里面命令的意思:
--layout 后面是需要下載離線包的路徑。這里選擇的是當前目錄下的installer文件夾。
--add 是微軟官方設計的添加各種工作負荷或者組件ID。
常用到幾個工作負荷ID有:
ID: Microsoft.VisualStudio.Workload.CoreEditor Visual Studio 核心編輯器
ID: Microsoft.VisualStudio.Workload.ManagedDesktop .NET 桌面開發
ID: Microsoft.VisualStudio.Workload.NativeDesktop C++ 的桌面開發
ID: Microsoft.VisualStudio.Workload.NetCoreTools .NET Core 跨平臺開發
除了這些常用組件,可在VS組件ID查詢內查到非常詳細的ID,然后根據需要–add 所需ID就行。
--includeRecommended 是下載所有已選擇的工作負荷所推薦的組件,但不包含可選組件。
--lang zh-CN是指按照中文語言。
補充 解釋上面的命令
結束
那什么是工作負荷、推薦組件、可選組件呢?看下圖:
這個界面大家肯定都非常熟悉,左邊常見的C++桌面開發等就是工作符合,而右邊默認勾選的是推薦組件,下面默認沒有勾選的則是可選組件。除了上面的幾個指令,還有這個常用指令:
--includeOptional 添加布局中包含的任何工作負載的推薦和可選組件。
當然,除了這些官方還給出了許多其他指令,感興趣的同學可以在命令行參數自行查看。
(4)在CMD終端輸入相關指令回車后,會顯示下面的畫面,等待慢慢安裝完成就好啦:
(5)將整個VS2019文件夾拷貝至需要離線安裝的電腦內,雙擊vs_setup.exe安裝即可!
(6)除了上面手動添加每個組件ID外,微軟還提供一個直接根據自身電腦已經配好的VS軟件環境直接導出一個.vsconfig配置文件。然后直接用下面指令,根據這個配置文件進行離線安裝VS2019,可以說是對那些忘記之前裝了哪些組件或者組件非常雜亂的同學非常友好!給微軟點個大大大贊!。
.\vs_community.exe --layout c:\localVSlayout --config c:\myconfig.vsconfig --lang en-US
根據《百度人臉識別Windows C++離線sdk用戶接入文檔V8.4.pdf》封裝動態庫,然后C#調用。
? 場景特點:
-- 網絡:對于無網、局域網等情況,無法連接公網,API 方式無法運作。如政府單位、金融保險、教育機構等,其中內網情況最為常見,私有化部署是項目開展的前提 條件。
-- 安全:即使可以連接外網,因為人臉數據的敏感性,許多客戶不希望將人臉數據傳入百度服務器,如大學學生照片、部分企業員工數據等,API 形式也往往不被接受。
-- 速度:由于各地網絡線路、機房部署、圖片采集方式等諸多原因,API 形式往往耗時較高,容易存在部分請求耗時過長的情況,容易影響業務正常運轉。
-- 穩定:API 形式容易受網絡抖動、機房故障、線上連帶 bug 等影響,存在一定的不穩定因素,可用性保障,往往成為在線調用最容易出現問題的地方。
? 客戶特點:
-- 1:N-小型人臉庫檢索:多為通道通行、固定區域人群驗證等需求,如寫字樓閘機門禁、企業考勤打卡等,人臉庫范圍較小,且不易經常變動。-- 1:1-自有數據源對比:將當前采集的人臉,與其他數據源中的人臉進行對比,如身份證芯片照、教務系統圖片、檔案圖片等,進行快速的 1:1 對比驗證。
? 核心需求:
-- 基礎的人臉采集:包含人臉檢測、跟蹤、捕獲、質量校驗等基礎功能,獲取符合識別條件的人臉。為之前的客戶端 SDK 的標準功能,離線版本 SDK 保留以上所有能力。
-- 本地特征抽取:所有在 SDK 中運行的人臉圖片,都可以完成本地特征抽取,以便進行對比或識別操作。
-- 1:1 對比:支持兩張圖片的相似度對比,可直接傳入圖片,也可調用本地某個人臉特征;
-- 1:N 搜索:支持一定庫大小的人臉查找,在指定的人臉集合中查找最相似的人臉,并返回相似度分值;
dll 頭文件
#pragma once
#include "targetver.h"
#define WIN32_LEAN_AND_MEAN // 從 Windows 頭中排除極少使用的資料
// Windows 頭文件:
#include <windows.h>
#include "baidu_face_api.h"
#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
//創建實例
extern "C" _declspec(dllexport) void* __cdecl create();
//實例初始化
extern "C" _declspec(dllexport) int __cdecl init(void* engine, char* model_path, char* code);
//人臉檢測
extern "C" _declspec(dllexport) int __cdecl face_detect(void* engine, Mat* image, char* json_result);
// 通過圖片人臉特征值提取
extern "C" _declspec(dllexport) int __cdecl face_feature(void* engine, Mat* image, char* json_result);
// 人臉比對(通過傳圖片)
extern "C" _declspec(dllexport) float __cdecl face_match_by_img(void* engine, Mat* image, Mat* image2);