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

Roslyn 打包 NuGet 包 BuildTransitive 文件夹用于穿透依赖传递拷贝文件

默认的 PackageReference 可以实现传递依赖,传递依赖的含义是是假定 B 项目安装了 A 库,而 C 项目依赖 B 项目,那么 C 项目将会自然拿到 A 库的 DLL 引用。...但默认的 NuGet 包的构建指导文件 targets 命令是不会在传递执行的,也就是如上的 C 项目将不会执行 B 项目安装的 A 库里面的 target 内容 有一些项目需要拷贝自定义文件,例如拷贝图片或者一些...NuGet 包相关的博客,如 Roslyn 打包自定义的文件到 NuGet 包 这一篇。...在这个博客告诉大家如何打包自定义的文件到 NuGet 包,和将自定义的文件放在输出文件夹里面 但是以上方法存在的问题如上文,只有制定了 PackageReference 安装此库的项目,才能将自定义的文件输出...本文的代码可以在本文的最后拿到,建议大家试一下本文的测试代码 回顾一下通过 csproj 创建 NuGet 包的方法,如 Roslyn 打包自定义的文件到 NuGet 包 的方法,咱创建一个叫 BuildTransitivePackage

1K10

maven: 打包可运行的jar包(java application)及依赖项处理

Main-Class类,然后用mvn exec:exec来运行,但是部署到生产环境中时,服务器上通常并不具备maven环境,只能用 java -jar xxx.jar这种方式来运行,下面是一些处理细节: 一、依赖项的处理...=target/lib 命令,把依赖的jar包全部导出到target/lib这个目录下 二、利用maven-jar-plugin修改META-INF\MANIFEST.MF 清单文件 java application...jar包在什么地方,第6行表示main函数的入口类,默认情况下mvn clean package生成的jar包里,清单文件上并没有这2行,需要在pom.xml中添加插件 1 2...> 15 第7行指定Main-Class,第9行指定classpath的相对路径,这样mvn package后,清单文件里就会自动添加Main-Class和Class-Path这二项...ok了,部署时把jar包和lib目录,都上传到服务器上 ,然后测试一下,顺利的话 java -jar  xxx.jar就可以了,如果要在后台运行,前面加 nohup

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

    项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)

    NuGet 包就可以不需要 nuspec 文件啦) - 吕毅 NuGet 相关的属性也分为全局属性和项属性两类。...项属性 文件 为了脱离 nuspec 文件来打包,csproj 中需要对特殊用途的文件设置特别的 NuGet 属性。...例如 Pack 属性可以额外指定一或一组通配符文件需要被打包到 NuGet 包中;PackagePath 则指定了打包到 NuGet 包的路径(NuGet 会通过扩展名来自动识别这是文件夹还是文件,所以可以通过这个属性来重新指定名称... 引用的项目或包中的指定部分是本项目的依赖项。默认为 all。 引用的项目或包中的指定部分不是本项目的依赖项,应该排除。... 引用的项目或包中的指定部分依然是本项目的依赖项,但是在打 NuGet 包时不作为依赖项(不会传递到下一个项目)。

    2.6K10

    2018-8-24-快捷调试Nuget包

    开发C#项目时通过Nuget引用添加依赖很方便,但是调试的时候就不一样了。 ---- 情景再现 我们有一个超级基础的库A,我们的多个公共组件B,C,D,和最终产品E都依赖于库A。...由于最终产品E的依赖项,依赖于nuget上的库A,nuget发现有同名dll就会出现冲突 可行方法 最简单的方法是,我们打出一个alpha包,发送到nuget服务器中,然后在最终产品E中升级 缺点是成本较高...之后每次编译时只需要从nuget缓存中获取现有的dll进行编译。那么我们就可以通过替换nuget缓存目录中的文件实现使用本地dll调试。...然后我们将本地的dll放进去,发现一家可以成功使用本地包的方法啦~~ ? ?...然后你可以在vs中的指定项目右键-打包(需要新格式才能支持),生成一个本地nuget包,放到刚刚的文件夹中 然后在产品项目里指定本地的程序包源,就可以看到你本地的nuget包了 ?

    1.2K10

    SharpIco:用纯C#打造零依赖的.ico图标生成器,支持.NET9与AOT编译

    实现并且零依赖的(大部分都是依赖于 Magick 这个 C++实现的图片库),然而很遗憾,这个工具在我电脑上并不能使用…… 目标 这时我想起来之前曾经用 c# 开发了一个图片格式转换工具,使用了 .Net8...的 AOT 功能,可以像 go 语言那样开发出跨平台的单可执行文件 所以我决定继续使用 C# 开发一个图标生成工具,这个工具可以实现: 纯 C# 实现,没有外部依赖,跨平台,单可执行文件,AOT 将....NetCore控制台程序 (4) 使用GithubAction自动构建以及发布nuget包[5] 这部分问题不大 不过这次还有些不一样,之前发布的是类库和项目模板,这次是 dotnet tool 这类似于...npx 脚本、pip 工具之类的概念 可以使用 dotnet tool 命令安装和调用 不过这种方式就不能使用 AOT,只能使用 framework dependant 方式发布 nuget 发布比较简单...publish -c Release -r ${{ matrix.target }} --self-contained true -p:PublishAot=true 每个平台生成对应压缩包,打包后使用

    40900

    如何编写.NET Core Global Tools (附两个案例)

    用过NodeJs的人一定对NPM不会陌生,它就是受到NPM的启发,为提供了.NET Core tools 提供了一个新的部署和扩展机制 。...它是一个 .NET Core 控制台应用程序,它们是作为 NuGet 包来打包和获取的。默认情况下,这些 tools 是依赖于框架的应用程序 ,并包含其所有的 NuGet 依赖项。...5.打包 我们可以使用 dotnet pack 命令来进行打包,也可以使用VS提供的菜单来进行打包:选中项目->右键菜单->打包 (项目配置选为 Release),然后在 bin\Release目录下,...就可以找到我们打包的nuget包。...使用浏览器访问:http://www.nuget.org/ ,然后注册账户进行登录。 我们选择右上角的菜单 “Upload Packages” 选择我们刚刚打包的文件进行上传就可以了: ?

    93810

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

    例如,可以使用简单的 copy 命令将其打包为 Zip 文件,或者使用选择的安装包进行部署。..." /> 如果尚未安装,请下载包含第三方依赖项的 NuGet 包。...若要下载该包,请在添加依赖项后执行 dotnet restore命令。 因为依赖项在发布时已从本地 NuGet 缓存解析出来,因此它一定适用于你的系统。...当为具有此类第三方依赖项的应用程序创建 FDD 时,已发布的输出会针对每个本机依赖项支持(存在于 NuGet 包中)的运行时标识符 (RID) 包含一个文件夹。...例如,可以使用简单的 copy 命令将其打包为 Zip 文件,或者使用选择的安装包进行部署。 下面是此项目完整的 csproj 文件。

    2.6K20

    开源组件NanUI一周年-使用HTMLCSSJS来构建.Net Winform应用程序界面

    系列文档 NanUI简介 开始使用NanUI 打包并使用内嵌式的HTML/CSS/JS资源 使用网页来设计整个窗口 如何实现C#与Javascript相互掉用(待更新。。。)...源码和包 你可以通过GitHub获取NanUI的源码以及示例代码,稳定版的NanUI包通过Nuget进行分发。NanUI支持.NET4.0/4.5/4.6/4.7和更新版本的Windows窗体应用。...获取源码 Nuget包管理器 常规版本(CEF 3.2987.1601.gf035232 / Chromium 57.0.2987.133) WindowXP版本(CEF 3.2526.1366.g8617e7c.../ Chromium 47.0.2526.80) 推荐使用Nuget包管理器安装NanUI程序集将自动安装对应的CEF依赖项,一键安装方便使用。...如何使用 初始化NanUI 使用原生的窗口样式来使用NanUI 使用无边框模式来使用NanUI 请注意:如果使用Visual Studio 2015或者更低的版本开发和调试NanUI应用程序,需要在项目属性的调试选项卡中关闭

    2.2K60

    教程:创建模板包

    在本系列的这一部分中,你将了解如何: 创建一个 *.csproj 项目以生成模板包 配置项目文件以进行打包 从 NuGet 包文件安装模板包 按包 ID 卸载模板包 先决条件 完成本系列教程的第 1 部分和第...创建模板包项目 模板包是打包到 NuGet 包中的一个或多个模板。 安装或卸载模板包时,将分别添加或删除包中包含的所有模板。 本系列教程的前几部分仅适用于各自的模板。...若要共享非打包模板,必须复制模板文件夹并通过该文件夹进行安装。 由于模板包中可以包含多个模板,并且是单个文件,因此共享更容易。 模板包由 NuGet 包 (.nupkg) 文件表示。...此外,可以直接从 .nupkg 文件安装模板包。 通常情况下,使用 C# 项目文件来编译代码并生成二进制文件。 但是,该项目也可用于生成模板包。...生成此项目后,它会生成模板包 NuGet 包。 将要创建的包将包含先前创建的项模板和包模板。

    1K10

    从零开始学习 dotnet 编译过程和 Roslyn 源码分析

    以下是这部分的性能数据: C# 性能分析 反射 VS 配置文件 VS 预编译 - 林德熙 额外的,如果不是收集而单单只是使用的话,这里是性能数据: C# 直接创建多个类和使用反射创建类的性能 - 林德熙...基础 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - 吕毅 可以使用 NuGet 做一些不是传统 dll 引用的功能: Roslyn 通过...NuGet 工具包 - 吕毅 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 - 吕毅 在制作跨平台的 NuGet 工具包时,如何将工具(exe/dll)的所有依赖一并放入包中 - 吕毅 NuGet...的坑很多,有些可以解,有些需要规避: 帮助官方 NuGet 解掉 Bug,制作绝对不会传递依赖的 NuGet 包 - 吕毅 MSBuild/Roslyn 和 NuGet 的 100 个坑 - 吕毅 Roslyn...来执行我们的代码: Roslyn 使用 Target 替换占位符方式生成 nuget 打包 - 林德熙 Roslyn 通过 Target 修改编译的文件 - 林德熙 将 .NET Core 项目打一个最简单的

    1.1K40

    win10 uwp 上传Nuget 让别人用我们的库 Nuget下载打包Nuget上传命令行使用Nuget

    Nuget 我们的开发经常使用别人的dll,那么我们需要每次都从网上下载,然后复制到我们的项目, 而不知道我们的dll是否安全?...Nuget,让别人可以使用,做法很简单,先下载软件后制作,上传。...ID:必须的唯一的ID,格式和C#命名空间规范相同,在你发布包的时候会去验证唯一性。...iconUrl 一个32*32像素的.png文件地址,作为最终在nuget中显示的图标 描述、标签、许可地址、项目地址 Dependencies 我们发的依赖其他程序,那就写他,具体怎么我还不知...解决方案: 请替换为适当的值或删除它,然后重新生成程序包。 把我们信息写后打包 nuget pack smms.csproj ?

    1.2K10

    win10 uwp 上传Nuget 让别人用我们的库

    Nuget 我们的开发经常使用别人的dll,那么我们需要每次都从网上下载,然后复制到我们的项目, 而不知道我们的dll是否安全?...Nuget,让别人可以使用,做法很简单,先下载软件后制作,上传。...ID:必须的唯一的ID,格式和C#命名空间规范相同,在你发布包的时候会去验证唯一性。...iconUrl 一个32*32像素的.png文件地址,作为最终在nuget中显示的图标 描述、标签、许可地址、项目地址 Dependencies 我们发的依赖其他程序,那就写他,具体怎么我还不知...[.Net] 手把手带你将自己打造的类库丢到 NuGet 上 - 反骨仔(二五仔) - 博客园 还可以使用比较快的镜像 NuGet镜像上线试运行 - 博客园团队 - 博客园

    69510

    dotnet pack

    本文适用于: ✔️ .NET Core 2.x SDK 及更高版本 “属性” dotnet pack - 将代码打包到 NuGet 包。...该命令的结果是一个 NuGet 包,也就是一个 .nupkg 文件。 如果要生成包含调试符号的包,可以使用以下两个选项: --include-symbols:该选项用于创建符号包。...--include-source:该选项用于创建带有 src 文件夹的符号包,该文件夹包含源文件。 将被打包项目的 NuGet 依赖项添加到 .nuspec 文件,以便在安装包时可以进行正确解析。...如果打包的项目具有对其他项目的引用,则不会将其他项目包含在包中。 目前,如果具有项目到项目的依赖项,则每个项目均必须包含一个包。 默认情况下,dotnet pack 先构建项目。...--force 强制解析所有依赖项,即使上次还原已成功,也不例外。 指定此标记等同于删除 project.assets.json 文件。 -?|-h|--help 打印出有关如何使用命令的说明。

    2.2K20

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

    所以,我们需要进行“一番配置”,使得这个项目编译成一个NuGet 工具,而不是一个依赖包。...Visual Studio 解决方案中(其实对于不认识的文件,None 就是默认值);Include 表示相对于项目文件的路径(支持通配符);Pack 表示这一项要打包到 NuGet;PackagePath...表示这一项打包到 NuGet 中的路径。...DevelopmentDependency 是为了说明这是一个开发依赖,设置为 true 将阻止包作为依赖传递给下一个项目。(事实上这又是官方的一个骗局!因为新版本的 NuGet 竟然去掉了这个功能!...关于这些属性更详细的解释,依然可以参见:项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - 吕毅。

    1.5K20

    解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程

    关于 NuGet 包的目录结构,我在下面两篇文章中都有提到过: 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 如何创建一个基于命令行工具的跨平台的 NuGet 工具包 官方对...不过,Sdk 类型的 NuGet 包会多一个 Sdk 文件夹。 ?...CollectPackageReferences 用于收集 PackageReference 收集到的所有依赖(也就是 NuGet 包依赖) CoreCompile 核心的编译过程 GenerateAssemblyInfo...用于生成 AssemblyInfo.cs 文件(以前可是手工写的呢) Pack 用于将当前程序集打包成一个 NuGet 包 GenerateNuspec 在打包之前生成 nuspec 文件 定制富有创意的编译过程...本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

    1.6K30

    使用 NuGet 管理项目库

    如何将库集成到当前项目中并管理库的依赖项和更新呢? ELMAH 就是一个非常有用的库,是由开发人员自己编写的。...实际上,有必要将该依赖项添加到版本控制之下的文件夹,并从该位置引用该程序集。 在项目中添加程序集引用。必须在 Visual Studio 项目中添加对该程序集的引用,然后才能使用该程序集。...现在,假设您必须为 10 至 15 个依赖项执行这些操作。 当您的应用程序要发布新版本时,您需要花费大量时间为应用程序的依赖项搜索更新。...NuGet 程序包是打包成一个文件的文件集,扩展名是 . nupkg,使用开放打包约定 (OPC) 格式。 OPC 仅仅是具有某些元数据的 zip 文件的首字母缩写词。...成为 NuGet 创建者 创建Nuget 库 http://sidewinder.codeplex.com/ NuGet 2.0带来新的打包规约,但还不支持Mono、Python和C++ NuGet 2.0

    2.1K100
    领券