1.整理编译好的文件
需要整理的文件包括:dll、lib以及头文件,以opencv 4.6.0为例,文件组织方式如下:(其中opencv.nuspec和opencv.targets为自主创建文件,创建方式及文件内容在本文后面介绍)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| opencv.4.6.0 │ opencv.nuspec │ └─build └─native │ opencv.targets │ ├─bin │ ├─Debug │ │ hdf5.dll │ │ opencv_img_hash460d.dll │ │ opencv_videoio_ffmpeg460_64.dll │ │ opencv_world460d.dll │ │ zlib.dll │ │ zlibwapi.dll │ │ │ └─Release │ hdf5.dll │ opencv_img_hash460.dll │ opencv_videoio_ffmpeg460_64.dll │ opencv_world460.dll │ zlib.dll │ zlibwapi.dll │ ├─include │ └─opencv │ └─lib opencv_img_hash460d.lib opencv_world460d.lib opencv_img_hash460.lib opencv_world460.lib
|
其中,bin中放置的是dll文件,include放置的是头文件,lib中放置的是静态链接库。
2.在native目录中创建opencv.targets文件
第一步:进入native文件夹,创建opencv.txt文件
第二步:将opencv.txt重命名为opencv.targets
第三步:输入下列xml内容
opencv.targets文件起到将include和lib文件配置到项目的作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <ItemDefinitionGroup> <ClCompile> <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <Link> <AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)lib\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> <AdditionalDependencies>%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="$(Configuration.IndexOf('Debug')) != -1 "> <ClCompile> <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <AdditionalDependencies>opencv_world460d.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="$(Configuration.IndexOf('Release')) != -1 "> <ClCompile> <PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <Link> <AdditionalDependencies>opencv_world460.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> </Project>
|
3.在opencv.4.6.0目录中创建opencv.nuspec文件
第一步:进入opencv.4.6.0文件夹,创建opencv.txt
第二步:将opencv.txt重命名为opencv.nuspec
第三步:输入下列xml内容
opencv.nuspec文件记录了库文件的基本信息及依赖信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| <?xml version="1.0" encoding="utf-8"?> <package xmlns="http://schemas.microsoft.com/packaging/2013/01/nuspec.xsd"> <metadata> <id>opencv</id> <version>4.6.0</version> <title>opencv</title> <authors>noah</authors> <owners>dztech</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>VS2017 X64 vc141 DEBUG RELEASE</description> <summary></summary> <copyright>Copyright (c) 2020, noah</copyright> <tags>native, C++, noah</tags> <dependencies> <dependency id="dllname" version="x.x.x" /> </dependencies> </metadata> </package>
|
4.安装nuget.exe
第一步:下载nuget,下载地址:nuget.exe
第二步:将nuget.exe的存放路径添加至环境变量的系统环境Path中(或者将nuget.exe放置在Path中的某个路径下)
5.使用命令创建包并上传到服务器
第一步:进入opencv.4.6.0文件夹,然后按住Shift键同时右击,选择“在此处打开Powershell窗口(S)”,如下图所示
第二步:执行打包命令
1
| nuget pack opencv.nuspec
|
执行后出现如下图所示的信息表示打包成功,同时在opecv.4.6.0文件夹中会生成文件:opencv.4.6.0.nupkg
第三步:执行上传命令
其中,-Source的值是包存放到服务器上的地址;-ApiKey为密钥(向服务器管理员索要)
1
| nuget push -Source http://xxx.xxx.xxx.xxx -ApiKey xxxxx opencv.4.6.0.nupkg
|
如果push过程中出现下图的提示表明网络连接出现了问题
6.从服务器上删除包
执行命名:
1
| nuget delete opencv 4.6.0 –Noninteractive –Source http://xxx.xx.xxx -ApiKey xxxx
|