在国外.NET社区有一个很火的话题是Packet(https://fsprojects.github.io/Paket/index.html ),它本质上是Nuget 之外的另一种方式管理.NET项目。...首先要在你解决方案的根目录下包含一个.paket文件夹,里面包含用于安装和恢复包的工具paket.exe。...文件夹和文件内容都在那里后,需要在解决方案的根目录下创建一个paket.dependencies文件,内容类似于: source https://nuget.org/api/v2 nuget FSharp.Core...在每个有一个project文件的文件夹位置有个文件paket.references文件,创建包含要引用的库。...该paket.references文件将只添加到项目中如果库是在lib文件夹。手动引用也不是问题,因为它可以在build.fsx文件中手动引用的。
正常如果你想写一个 .NET 的 NuGet 包,直接打包就好了,你的引用程序集会出现在 NuGet 包内的 lib 文件夹内。然而,如果我们的 NuGet 包包含本机依赖的话怎么办呢?...对于这些不同的组合,NuGet 包的制作会有一点点不一样,在这篇博客里面都会说应该怎么做。 NuGet 相关文件夹解读 我曾在这两篇博客里提到过 NuGet 文件夹,那里会更全一些但是不够细。...+ ref - net45 - netcoreapp3.1 - net5.0 最后那个 lib 文件夹应该不用多作解释了,一个普通的 .NET 程序集打出的 NuGet 包里带的就是这个文件夹...但需要特别说明的是: 【重要】如果你包含 lib 文件夹,那么你应该分拆成两个 NuGet 包!...这个名字你可以随便取,反正也不会进到 NuGet 文件夹中。 随后,我们依层级建好“runtimes”、“win-x86”、“lib”、“netcoreapp3.1”这样的文件夹一整组(见下图)。
再创建一个项目,为了直接引用上面测试项目的 NuGet 需要做一点黑科技,第一步是让测试项目的 NuGet 输出到一个文件夹 在 sln 所在的文件夹添加 Directory.Build.props 文件...sln 创建项目,所以写的文件夹都是相对的,文件夹请看 代码 为了引用到测试项目的输出需要添加 nuget.config 文件,通过在命令行输入 dotnet new nuget 就可以成功创建,创建完成需要修改相对文件夹...文件夹 <file src="bin\Debug\netcoreapp3.0\LerewararraNurfabeyo.dll" target="<em>lib</em>\debug\LerewararraNurfabeyo.dll...包对应的 id 同时放在 build <em>文件夹</em>里面,也就是打开 <em>nuget</em>包可以看到 build\id.targets 里面的代码才可以运行,关于这个文件请看代码 <?...命令打包 <em>nuget</em> pack LerewararraNurfabeyo.nuspec 将这个命令放在 package 命令文件,请看代码 这时打包完成的包是放在相同的<em>文件夹</em>,因为刚才已经用到在上一层的<em>文件夹</em>
在项目里面引用的资源,可以通过在引用的时候添加 Pack 属性设置打包,使用 PackagePath 属性设置打包的时候放在包里面的哪个文件夹 例如将项目里面引用的 林德熙是逗比.txt 打包放在 lib...="\lib\doubi\" /> 注意需要将 None 放在 ItemGroup 里面,请看代码 <None Include="林德熙是逗比.txt"...Newtonsoft.Json.dll 将这个文件输出到打包文件夹里面 如果我是需要在运行过程引用的一些 C++ 运行库,那么同样可以上面方法 另外在输出的时候也支持改名,例如在写 NuGet 的时候... 使用 $(MSBuildThisFileDirectory) 拿到当前文件的文件夹,此时通过上一层文件就可以拿到 NuGet 包的文件夹。...获取对应的文件进行输出到软件编译输出文件夹 关于文件复制请看 Roslyn 如何使用 MSBuild Copy 复制文件 如果这个库文件只是需要添加资源文件,不需要加上 lib 文件,也就是不添加引用,
首先把自己编译好的包全部准备到一个文件夹 像这样 ? 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <file src="....可以看到E:\<em>nuget</em>\packages下面新建了一个包ID相关的<em>文件夹</em>,里面包含了我们刚才打包的包 接下来试试安装 <em>nuget</em> install Google.Grpc -Source E:\<em>nuget</em>...是默认的<em>Nuget</em>源配置路径 ? 查看<em>文件夹</em> ?
首先需要知道一些 Nuget 打包需要知道的,请看 win10 uwp 上传Nuget 让别人用我们的库 但是 UWP 的包和上面说的有一些不同,需要对打包做一些修改。...可以到 csdn 下载 Nuget 的程序或者到https://www.nuget.org/downloads下载 创建空白的spec 使用 Nuget 命令在空白的文件夹进行创建空白的包,使用命令nuget...spec 假如下载的 Nuget 放在 E:\ ,空白文件是 “E:\1” 那么使用的命令就是进入空白文件夹,然后需要写 Nuget 的路径才可以使用。...按win+R输入 cmd 打开命令行,然后输入下面代码 E: 进入E盘 cd 1 进入1文件夹 然后把 Nuget 拉进命令行 E:\nuget.exe spec 这时可以看到命令行输出 成功创建 E:...打包 接下来就是创建 Nuget ,首先需要把空白的包放到库的文件夹,这里创建的库是E:\1\NrzlmhRzvy\所以把Package.nuspec放在E:\1\NrzlmhRzvy,现在使用 SublimeText
,此时可以发现原本乱糟糟的文件夹被替换为只有一个 exe 可执行文件和一个 lib 文件夹。...双击 exe 可执行文件即可获得和之前一样的效果 打开 Lib 文件夹,可以看到此文件夹里面就是原本放在发布文件夹里面的除了入口 exe 之外的其他文件 以上的 PublishFolderCleaner...工具的作用就是将发布文件夹里面的所有文件,除了入口 exe 之外的文件,都放入到 lib 文件夹里面,然后修改入口 exe 文件的逻辑,让入口 exe 可以从 lib 文件夹里面读取入口 dll 文件...,可以看到此文件夹只有存放一个 exe 和一个 lib 文件夹,如下 | WhihuqeabaLeelurlallball.exe | \---lib | clrcompression.dll...lib 文件夹,再通过修改入口 exe 可执行文件,也就是 AppHost 文件,让入口 exe 从原本的相同文件夹读取入口 dll 替换为从 lib 文件夹里面读取入口 dll 文件 关于修改 AppHost
在这个博客告诉大家如何打包自定义的文件到 NuGet 包,和将自定义的文件放在输出文件夹里面 但是以上方法存在的问题如上文,只有制定了 PackageReference 安装此库的项目,才能将自定义的文件输出...除此之外,其他逻辑都和之前相同 也就是说如果期望在引用传递中,每个引用的项目都会执行到 NuGet 里面的 targets 和 props 文件的命令,只需要将 targets 和 props 文件放入到...其他逻辑都和之前相同 敲黑板,只需要将原本放在 NuGet 里面的 Build 文件夹,重命名为 BuildTransitive 即可 以下是告诉大家如何制作的方法,以及更多细节。...期望是在软件的输出文件夹里面可以找到这张图片,换句话说就是这张图片需要放入到 NuGet 包中,接着输出到安装了此库的项目的输出文件夹 此图片文件放在 Assets 文件夹下,默认的启动图片是 SplashScreen.scale...BuildTransitivePackage.props │ BuildTransitivePackage.targets │ ├─content │ Image1.png │ Image2.png │ ├─lib
在nuget文档结构约定中,包含了如下三个文件夹: lib:包含目标程序将要引用的dll文件。...在本文示例中,创建了content和lib文件夹 ?...在lib文件夹中,我们可以指令在不同的.net framework版本中,要包含的不同文件的引用,我们可以在任意目录中包含它们,而并不只是在lib文件夹中。...而在添加这些文件夹的时候,可以通过右键点击文件夹,然后选择Add .NET Folder快速的添加不同版本名字缩写的文件夹,这是你使用命令行方式创建nuget包所享受不到的快捷的方式,很酷吧。...上文中提到过,党Content文件夹中包含了后缀名为.transform的文件时,nuget将会merge目标文件,比如示例中使用的就是一个ASP.NET MVC扩展的包,它可以提供给ASP.NET MVC
有时某个相同命名空间相同名字的类型被两个不同的 NuGet 包定义了,尽管这是非常少见的事情,咱需要使用到其中的一个 NuGet 包的类型,但默认情况下将会因为类型冲突而构建不通过。...本文将告诉大家如何给 NuGet 包加上 Aliases 别名解决类型冲突 给 NuGet 包加上 Aliases 别名,且使用别名限定的方式解决类型冲突分为两步。...第一步就是修改 NuGet 引用加上别名名称。...包里面的 Lib 文件夹,即被 NuGet 带过来的程序集都会应用上此别名。...当然,在 NuGet 里面也不限制一个 NuGet 包带多个 dll 程序集文件在 Lib 文件夹下,无论带多少个 dll 程序集文件,这些 dll 程序集都会被应用上相同的别名 第二步里面即可使用给
在 Assets 文件夹中新建 Plugins 文件夹,然后将你希望引用的 dll 丢进去就完成了。 引用 dll 因此,如果你已经拥有了 dll 了,那么直接往 Plugins 文件夹扔就好了。...原生 原生 Unity 项目并不能直接安装 NuGet 包,所以实际上对于 NuGet 包的引用是通过把包里的 dll 丢到 Plugins 文件夹来实现的。 既然如此,那就看如何丢进去更有效率了。...微软官方文档的方法是直接从 nuget.org 上直接把包下载下来,解压,然后将对应平台的 dll 从 lib 文件夹中取出来(例如 API 兼容性级别是 .NET Standard 2.0 的项目,请拷贝...lib/netstandard2.0 中的 dll 出来)。...NuGet 包,也是从对应的文件夹中取出来 dll 丢到 Plugins 文件夹中。
下载NuGet Package Explorer 点此下载 新建项目 安装完成后打开 NuGet Package Explorer 通过File >New可以新建一个Package 然后点击Edit...Package Metadata可以编辑 编辑的基本信息如下 需要注意的是 Id是Package的唯一编号 Version是版本号,当版本号发生变化后重新发布时,在NuGet Manager中会有升级提示...Title是在NuGet Manager中显示的名称 Summary将在RSS中显示 Description和Release Notes将会显示在NuGet Manager中 高级选项Dependencies...1.0]为至少是1.0版本,[1.0,2.0]为1.0至2.0版本,(1.0,2.0]为需要大于1.0小于等于2.0的版本 添加.NET程序集 在Package Contents上点击右键选择Add Lib...之后在Lib上点击右键 选择.NET folder 下的no version即可 然后在新建的文件夹中添加dll或其它需要引用的文件即可 添加静态文件 如果需要添加CSS或JS文件 右键Add Content
如果有一些行为依赖于此脚本,那么这个 NuGet 包的行为可能不正常。 但是,不用担心!...lib 根目录中的程序集将被忽略 lib 文件夹内的程序集都应该按照目标框架建立子文件夹,例如 net45、netstandard2.0、netcoreapp2.0。...如果是使用默认的方式创建的 NuGet 包,基本上不会遇到这样的问题。除非你在创建 NuGet 包时有自定义操作在根目录放了程序集。...解决升级后的编译错误 最可能出现的编译问题是 NuGet 包引用的版本冲突。...NuGet.Packaging 3.5.0 -> NuGet.Versioning (= 3.5.0) NuGet.Configuration 4.0.0 -> NuGet.Versioning (=
背景知识 NuGet 包内的文件夹结构 回顾一下 NuGet 包的文件夹结构: 1 2 3 4 5 6 7 8 9 + / + lib/ + ref/ + runtimes/ + content/ +...执行时机 我们打出这样的两种 NuGet 包,一种是仅包含 build 文件夹而不包含 buildMultiTargeting 文件夹;一种是包含 build 文件夹和 buildMultiTargeting...于是我们可以得到这样的四种不同的组合情况: 仅含 build 文件夹的 NuGet 包装到单框架项目中 仅含 build 文件夹的 NuGet 包装到多框架项目中 包含 build 和 buildMultiTargeting...文件夹的 NuGet 包装到单框架项目中 包含 build 和 buildMultiTargeting 文件夹的 NuGet 包装到多框架项目中 1....仅含 build 文件夹的 NuGet 包装到单框架项目中 在这种情况下,build 文件夹中的 .props 和 .targets 文件在目标项目编译时正常执行。 2.
我刚刚解压缩了InputKit的nuget包,您可以在下图中看到nupkg文件的树状视图。 ? 因此,只需查看其中的文件夹和文件。 icon.png: 这是您的NuGet包的图标文件。...lib: 软件包的主文件夹。此文件夹包括您的构建输出。换句话说,它在构建之后包含了bin文件夹。所以您可以看到不同目标框架的文件夹与项目输出相同。...例如,如果您的.csproj文件是多目标的,您可以像我一样看到每个目标框架的文件夹。 package: 此文件夹包含有关您的包的更多元数据文件。...您的nupkg文件将在您项目的bin文件夹中等待着您。...因此,我们可以轻松地从.pacakges文件夹中找到输出。因此,您的nupkg文件已准备好推送。
中在Visual Studio2017中VC++项目安装使用GoogleTest库 在Windows10中VC++程序中可以不用自己手动下载GoogleTest源代码,可以直接通过【项目】-> 【管理 NuGet...1.创建一个VC++控制台应用程序 2.安装googletest包 在C++中通常需要通过自己源代码编译第三方库比如载GoogleTest等,然后在自己的项目中添加头文件和lib库文件的路径。...不过微软的NuGet包管理器简化了这个。...从上面可以包的名称为:Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn,版本号为:1.8.1.7,同时在项目所在路径多出一个packages文件夹...: 里面有库的头文件和相关lib库 使用googletest 安装Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn之后,就可以使用
四、创建项目 1、在vscode编辑器中打开一个文件夹,这个文件夹就是当前项目的工作目录。...、创建一个控制台项目 dotnet new console -n myPro.App 4.将控制台项目加入到解决方案中 dotnet sln add myPro.App 5.myPro.App引用其他lib..., "stopAtEntry": false, "console": "internalConsole" } ] } 六、扩展Nuget...包 1、安装nuget包管理器 需要在扩展组件中,搜索NuGet Package Manager,安装nuget包管理器。...2、使用nuget包管理器 按下ctrl+shift+p,在弹出的命令框内输入 nuget package manager:add package: 可以尝试 C#Redis的安装
领取专属 10元无门槛券
手把手带您无忧上云