首页
学习
活动
专区
圈层
工具
发布

dotnet 手工打一个 dotnet tool 包

打一个 dotnet tool 包,可以将这个包上传到 NuGet 上,小伙伴通过和安装 NuGet 相同方式就可以将工具安装在本机上。...本文将告诉大家如何手工打一个 dotnet tool 包,方便小伙伴自己写工具用来创建代码 所有可执行项目可以打包为 dotnet tool 包,通过 dotnet xx 的命令就可以执行对应的软件。...就可以 这个 NuGet 包和其他的 NuGet 有什么不同 如果我需要手动打包,我先需要可执行文件,例如 Windows 下的 exe 文件,注意没有限制平台,也就是 Linux 也可以。...这里说的可执行文件在 Windows 下可能是 dll 哦,只要通过 dotnet 命令可以启动这个 dll 就可以 我假设拿到可执行文件和他的所有依赖文件,放在 lindexi 文件夹里面 接下来就是手工打包了...Name 就是 nugetfix 中的命令,而 EntryPoint 就是入口文件,请将代码修改为你需要的代码 返回 packing 文件夹,创建 nuspec 文件,我期望阅读本文的小伙伴都知道 nuspec

70210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    .NET Core系列 : 2 、project.json 这葫芦里卖的什么药

    在安装VS2015 Update3时,.NET Core所需的官方依赖包都已经安装在了(默认安装)C:\Program Files (x86)\Microsoft SDKs\NuGetPackages目录下...,在nuget管理中也可以看到这是默认的离线包目录,我们需要什么样的包只要把它复制到这个目录,在nuget管理中的程序包源选择离线的源即可。...global.json global.json是一个有待探究的神奇配置文件,我最喜欢的一个功能是全新的支持调试和单步执行,甚至可以实时修改包的源代码。...现在,想像你如果为此框架引用 NuGet 包,但有时怀疑可能存在需要修复的缺陷或可能存在一个批准的增强功能。通常,这需要独立于项目/解决方案处理组件中的源代码。...否则,会加载包文件夹中编译的二进制程序。

    3K80

    msbuild Roslyn 行为详解

    常用参数 项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - walterlv 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec...调用次数等于框架数量加一 如在框架为 net45;netcoreapp3.1;net6.0 那将会分别在 net45 netcoreapp3.1...net6.0 调用一次,以及最终构建完成调用一次 多框架的 IntermediateOutputPath 属性值 默认是使用 IntermediateOutputPath 表示 obj 下的缓存文件夹...,可以用来输出构建相关的缓存文件,在多框架下,默认是加上框架的路径,如 obj\Debug\net45\ 和 obj\Debug\net5.0\ 文件夹 随着调用的次数,各个框架构建的时候,将会带上框架的路径...和 Build 文件夹下的 Target 调用次数 在 Build 文件夹下的 Target 将会在各个框架分别执行。

    60320

    VisualStudio 如何在 NuGet 包里面同时包含 DEBUG 和 RELEASE 的库

    我在开发的时候需要使用到一些 DEBUG 库进行调试,但是我的库是通过 NuGet 给用户的,如果在 NuGet 里面使用到了 DEBUG 的库那么会让代码的运行效率降低。...,在这个文件可以设置全局的项目输出的文件夹 $(MSBuildThisFileDirectory)package...可以通过一个命令行执行编译,创建一个 cmd 文件,在这个文件里面添加编译代码,这个文件的代码放在 github 这是里面的代码 @echo dotnet build --configuration...Release dotnet build --configuration Debug 可以知道编译的文件输出在 bin\Debug\netcoreapp3.0 和 bin\Release\netcoreapp3.0...需要将文件放在 nuget 文件夹 netcoreapp3.0\LerewararraNurfabeyo.dll" target="lib\debug

    2.4K30

    在制作多框架项目的 NuGet 包时应该注意的问题(buildMultiTargetingTargetFrameworks)

    仅含 build 文件夹的 NuGet 包装到单框架项目中 在这种情况下,build 文件夹中的 .props 和 .targets 文件在目标项目编译时正常执行。 2....仅含 build 文件夹的 NuGet 包装到多框架项目中 在这种情况下,build 文件夹中的 .props 和 .targets 文件,会分别在目标项目编译每个框架的时候执行一次。...框架的时候会执行一次 Walterlv.NullableAttributes.Source 包中 build 文件夹中的编译任务;在编译 net48 框架的时候又会执行一次 Walterlv.NullableAttributes.Source...在编译 netcoreapp3.1 框架的时候会执行一次 Walterlv.NullableAttributes.Source 包中 build 文件夹中的编译任务;在编译 net48 框架的时候又会执行一次...而这两个单独框架的编译结束后,buildMultiTargeting 中的任务才会结束。 也就是说,这两个编译任务文件夹中的编译任务是都会执行的。但是: 两者参与编译的 Targets 不一样。

    87230

    C#.NET 如何创建带有本机依赖的多框架多系统 NuGet 包

    包含构建时的一些自定义任务(如果有的化),可随着包依赖而传递执行。 + lib - 必须。放你最终被引用的托管程序集,将被引用。 + ref - 看情况,可能必须可能可选。...这个名字你可以随便取,反正也不会进到 NuGet 文件夹中。 随后,我们依层级建好“runtimes”、“win-x86”、“lib”、“netcoreapp3.1”这样的文件夹一整组(见下图)。...\runtimes 文件夹中的所有文件引入包中。...我们取 x86 下的这两个 dll,将其让入 NuGet 的 ref 文件夹中。...目标框架需与原来一模一样;也要 GeneratePackageOnBuild 来标记生成 NuGet 包;使用 ProjectReference 引用原来的项目,这样可以在生成的 NuGet 包中自动标记原来的

    1.9K50

    如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包

    (如果你想了解更多 csproj 中的 NuGet 属性,可以阅读我的另一篇文章:项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - 吕毅)...上面的文件中,我们指定 Target 的执行时机为 CoreCompile 之前,也就是编译那些 .cs 文件之前。在这个时机,我们可以修改要编译的 .cs 文件。...如果想了解更多关于 Target 执行时机或顺序相关的资料,可以阅读:Target Build Order。...当然,使用 dotnet build 或者 dotnet msbuild 也是有这样的全局属性的。...更多 MSBuild 全局参数,可以参考我的另一篇文章项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - 吕毅。

    1.9K10

    .NET Core部署中你不了解的框架依赖与独立部署

    服务的运行时不需要存在于你的生成系统上;它会从 NuGet.org 自动下载。 FDD 和 SCD 部署使用单独的主机可执行文件,使你可以使用发布者签名为 SCD 签署主机可执行文件。...若要下载该包,请在添加依赖项后执行 dotnet restore命令。 因为依赖项在发布时已从本地 NuGet 缓存解析出来,因此它一定适用于你的系统。...当为具有此类第三方依赖项的应用程序创建 FDD 时,已发布的输出会针对每个本机依赖项支持(存在于 NuGet 包中)的运行时标识符 (RID) 包含一个文件夹。...生成的文件位于名为“发布”的子目录中,该子目录位于项目的 .\bin\Release\netcoreapp2.1 子目录的子目录中。...若要使依赖项对应用适用,请在添加依赖项后执行 dotnet restore命令。 因为依赖项在发布时已从本地 NuGet 缓存解析出来,因此它一定适用于你的系统。

    2.6K20

    如何创建一个基于命令行工具的跨平台的 NuGet 工具包

    (如果你想了解更多 csproj 中的 NuGet 属性,可以阅读我的另一篇文章:项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - 吕毅)...上面的文件中,我们指定 Target 的执行时机为 CoreCompile 之前,也就是编译那些 .cs 文件之前。在这个时机,我们可以修改要编译的 .cs 文件。...当然,使用 dotnet build 或者 dotnet msbuild 也是有这样的全局属性的。 在 Program.cs 中,只需要解析命令行参数即可接收这样的传参。...更多 MSBuild 全局参数,可以参考我的另一篇文章项目文件中的已知属性(知道了这些,就不会随便在 csproj 中写死常量啦) - 吕毅。...加入差量编译支持 在本文的例子中,当你每次编译时,虽然核心的编译流程不怎么耗时,不过那个命令却是每次都执行。如果你觉得此命令的执行非常耗时,那么建议加入差量编译的支持。

    1.5K20

    .NET Core多平台开发体验: Windows

    由于我们创建的是一个针对.NET Core 2.0的可执行控制台应用,所以目标框架为“netcoreapp2.0”,编译输出为Exe(对于Self Contained发布模式)。...安装NuGet包 WebHostBuilder所在的程序集包含在Microsoft.AspNetCore.Hosting这个NuGet包中,接下来我们就以它为例介绍若干中不同的NuGet包的安装方式。...如果我们需要按照一个新的NuGet包,我们需要选择第一个标签页,并在左上角的文本框中输入需要安装的NuGet包的全名或者全名的部分文字,与之相关的NuGet包将会筛选出来,如果目标NuGet包正好在该列表中...包括安装在内的NuGet包管理命令是在Visual Studio的“包管理器控制台(Package Manager Console)”窗口中输入并执行的,我们可以通过菜单“工具(Tools)>选项(Options...对于对上述的众多NuGet包的安装方式,它们最终的目的实际上就是在描述当前项目的.csproj问文件中添加一个针对指定NuGet包的引用而已。

    2.2K70

    Roslyn 在多开发框架让 msbuild 的 Target 仅运行一次

    在写预编译框架,因为安装项目会基于多个平台,也就是对应的 Target 会执行多次,而我需要的只是执行一次就可以 创建一个控制台项目,修改项目文件,然后使用 dotnet build 可以看到 Foo...库才能执行 这里的代码放在 github 欢迎小伙伴访问 另一个方法是通过在 buildMultiTargeting 添加 targets 文件的方法。...在 NuGet 的 build 文件夹和 buildMultiTargeting 的不同在于,在进行多框架编译时,将会在 build 的每个 Target 都执行,而 buildMultiTargeting...只是处理全部的框架的执行的逻辑。...文件夹找到 RanelwanemquHihaiyecewi.1.0.0.nupkg 文件,将 NuGet 设置使用本地文件夹的 NuGet 包,这样在另一个项目才能还原找到库是哪个。

    95120

    从以前的项目格式迁移到 VS2017 新项目格式 必须删除必须修改添加文件项目引用引用包删除多余文件输入注释多个框架使用条件判断迁移 WPF 项目

    可以看到新的格式的代码比较少 其实建议大家重新创建一个项目,然后把文件放进去,安装 Nuget 不然需要修改比较多。...\ProjectB\ProjectB.csproj" /> 引用包 之前的 Nuget 引用需要添加 packages.config 和 csproj 才可以使用,现在的 Nuget 4 可以直接在...如果只有需要定义一些全局的特性,那么直接新建一个类写就好。...netcoreapp1.1 netcoreapp2.0 netcoreapp2.1 .NET Framework net11 net20 net35 net40 net403 net45 net451..._0 NETCOREAPP1_1 NETCOREAPP2_0 NETCOREAPP2_1 参见:让一个 csproj 项目指定多个开发框架 - walterlv 迁移 WPF 项目 如果需要迁移 WPF

    4.6K20

    是时候将WPF控件库从.Net Framework升级到.NET Core 3.1

    新的csproj文件,顺便升级到新的SDK-style csproj文件有很多好处,包括更简洁可读的文件,新的NuGet引用方式,可以指定多个开发框架等。 更方便打包Nuget。...迁移到 PackageReference NuGet 引用 引用了Nuget包的旧.NET Framework项目会将引用的Nuget信息记录在packages.config文件中,例如在示例的项目中...打开Kino.Toolkit.Wpf.csproj,会发现少了些东西,但多了下面这段,这段就是经过精简的Nuget引用,在“管理Nuget程序包”的页面也可以看到已安装的Nuget变少了: ? ?...net462;netcoreapp3.1 现在可以把这些内容复制到Kino.Toolkit.Wpf.csproj,加上前面提到的...然后重新填一填应用程序和打包信息,可以看到项目文件中多了不少内容: ?

    5K10
    领券