个人笔记-nuget打包dll

1. 下载nuget.exe,并放到要打包的位置

2. Cmd:nuget spec yourownstuff,以此新建spec文件

3. spec文件中删除不必要的信息,添加dependencies和metadata外部的files

<?xml version="1.0" encoding="utf-8"?>
 <package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
    <metadata>
         <!-- 标题 -->
         <id>Zhao</id>
         <!-- 版本 -->
         <version>1.0.0</version>
         <!-- 作者 -->
         <authors>Dejana Tesic, Rajeev Dey</authors>
         <!-- 说明 -->
         <owners>dejanatc, rjdey</owners>
          <!-- URL 链接 -->
         <projectUrl>https://docs.microsoft.com/zh-cn/nuget/</projectUrl>
          <!-- 许可证信息 -->
         <license type="expression">Apache-2.0</license>
         <!-- 图标 -->
         <icon>image.png</icon>
         <!-- 如果为true,则此值会提示用户在安装软件包时接受许可证。 -->
         <requireLicenseAcceptance>false</requireLicenseAcceptance>
         <!-- 关于这个特定版本的任何细节 -->
         <releaseNotes>增加了什么功能</releaseNotes>
         <!-- 说明 -->
         <description>干什么用的</description>
         <copyright>版权</copyright>
         <!-- 标记搜索关键字 -->
         <tags>牛 哈哈</tags>
         <!-- 依赖包 -->
         <dependencies>
             <group targetFramework=".NETFramework4.8">
                 <dependency id="Newtonsoft.Json" version="13.0.1" clude="Build,Analyzers" />
                 <dependency id="SharpZipLib" version="1.3.3" clude="Build,Analyzers" />
             </group>
         </dependencies>
          <!-- 依赖框架程序集 -->
         <frameworkAssemblies>
              <frameworkAssembly assemblyName="Microsoft.CSharp" rgetFramework=".NETFramework4.8" />
              <frameworkAssembly assemblyName="PresentationCore" rgetFramework=".NETFramework4.8" />
         </frameworkAssemblies>
     </metadata>
     <!-- 重点,DLL XML PNG TXT 文件 -->
     <files>
         <file src="D\dll\readme.dll" target="\readme.dll" />
         <file src="D\dll\readme.xml" target="\readme.xml" />
         <file src="D\image\image.png" target="\image.png" />
     </files>
 </package>

4. Cmd:nuget pack yourownstuff.nuspec,以此生成yourownstuffversion.nupkg

5. C#项目中安装此本地nupkg,nuget包管理器-设置- nuget包管理器-程序包源-加号增加-省略号选择路径-更新,以此设置本地包路径

6. 完成安装

注:1. nuget包中打包的dll所需的另外的dll,不能放在files中引用进来,需要将另外的dll放在本地包路径下,并在nuspec的dependencies中进行添加(正在验证中,好像放在files中也可)

2. buildTransitive和targets写错后程序无法编译,先不要修改csproj,尝试将debug下obj文件夹删除

3. nupkg包卸载后再次安装,无论本地包的内容是否变更,只要其version没有变,则都会安装第一次的nupkg包的内容

4. 包中某些dll默认包管理格式为Packages.config时,会报出“请确保此文件可访问并且是一个有效的程序集或COM组件”,导致当前及后续dll打包失败;默认包管理格式为PackageReference时则不会

仅本地路径,且尚未涉及MsBuild,后续会补充。

参考:https://www.cnblogs.com/zhaoxf-nx-pm-csharp-vb-381160500/articles/15717624.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值