Nuget包本地调试以及自动打包上传

发布时间 2023-04-04 11:24:14作者: XUEZEJUN

项目过程中,经常需要打包Nuget包,并且引用本地Nuget包调试,完成后上传,因此做了点配置,分享给大家。如果大家有更好的方法欢迎分享。

1. 使用生成后事件自动打包

项目文件中本身是可以配置生成时打包的(通过项目属性窗口配置或者在项目文件<PropertyGroup>中增加<GeneratePackageOnBuild>节点配置),但由于公司项目打包前需要对动态库进行一些二次处理,加上我比较蠢,不太知道怎么在配置节点配置各种打包参数,因此打包放到了生成后事件中。

<Target Name="PostBuild" AfterTargets="PostBuildEvent" Condition="'$(Configuration)'=='Release'">
        <Exec Command="dotnet pack $(ProjectDir) -o $(ProjectDir)..\..\.packages/ -c release --no-dependencies --no-build --no-restore" />
    </Target>
*$(ProjectDir)..\..\.packages/:是输出目录请根据自己的情况自行修改
*Command里的内容也可以直接在项目属性-->生成-->事件-->生成后事件中填写,个人喜好自由选择

2. 配置本地Nuget包引用:

打开:工具-->选项-->Nuget包管理器-->程序包源,添加第一步的输出目录为本地Nuget包引用路径。

 

 

 3. 做个菜单按钮发布到Nuget网站

打开工具-->外部工具-->添加,用于添加个外部工具菜单,如下图所示:

 

 

这里使用了CMD执行,参数里填写发布命令,Nuget Push指令可在Nuget网站查询使用方式,我的是这一样的可以参考一下:

/c dotnet nuget push *.nupkg --api-key 发布使用的公钥从Neget网站申请 --source https://api.nuget.org/v3/index.json --skip-duplicate --force-english-output

为什么加上强制输出英文不是我装13……是因为中文会输出乱码实在不想浪费时间去看是为什么……

注意:使用输出窗口需要打勾,这样输出会在VS输出窗口里体现,比较方便。初始目录设置为第1步里的输出目录即可。

最后,设置完成后在工具中就可以看到这个菜单,使用方便,当然也可以将这个菜单添加到项目或解决方案的右键菜单里,这个改天说……