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

.Net在Windows上使用Jenkins做CICD的那些事

项目(包含所以依赖的项目)依赖引用丢失,主要体现以下几点: 官方依赖包没有使用NuGet 内部项目引用通过本地引用,项目没有拉取则编译失败 NuGet包多个版本的引用 同属一个解决方案,但是项目分散到各个仓库...  依赖没有规范化对软件工程主要带来以下几点影响: 缺少代码或者代码路径不一致则无法正常编译通过 对于新人同事不友好 实现CI/CD会有很大的阻力   解决方案与顺序: 整理组件库到统一解决方案,日后有需要拆分再按需拆分...如果没有配置好,接下来的应用项目可能会编译时还原包失败导致无法编译通过。 NuGet   新建Freestyle project,并在【源码管理】、【构建】填入您的构建信息,构建脚本我是保存在服务器上,因为保存在服务器上更加可靠。 ? ?...[Publish Over SSH]插件跟OpenSSL能把编译好的文件发送到相应的服务器,并执行对应的集群分发脚本。 ? ? 示例构建shell脚本 #!

2.2K31

.Net微服务实战之CICD

registry 开放6000端口 firewall-cmd --permanent --add-port=6000/tcp firewall-cmd --reload 以上就Registry安装完成了,但为了正常使用还需要做点配置修改...A服务器上基于docker安装 sudo docker run -d \ --hostname 192.168.88.138 \ -p 443:443 -p 8080:80 -p 2222:22...包源,因为在.Net Core应用 Build和Publish的时候会触发Restore指令(还原包),默认只有微软的nuget源,如果缺少了私有Nuget源会还原包失败 dotnet nuget add...Jenkins的使用 在一切开始之前得把SSH配置好,因为后续会使用到,在【SSH Servers】模块把服务器地址、账号密码填进去保存。...这里得注意下我是用ssh,因为我的Jenkins是使用了docker安装的,如果我使用了【构建】模块里的【执行shell】就会在Jenkins环境里进行编译、打包,同时也需要安装相应的环境 例如dotnet

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

    .Net微服务实战之CICD

    以上是我在虚拟机环境的部署图:   一共三台服务器,每台服务器都装了Docker,Server B是docker swarm的Manger角色,A和C是worker。   ...registry 开放6000端口 firewall-cmd --permanent --add-port=6000/tcp firewall-cmd --reload 以上就Registry安装完成了,但为了正常使用还需要做点配置修改...Gitlab的安装 在Server A服务器上基于docker安装 sudo docker run -d \ --hostname 192.168.88.138 \ -p 443:443 -p...包源,因为在.Net Core应用 Build和Publish的时候会触发Restore指令(还原包),默认只有微软的nuget源,如果缺少了私有Nuget源会还原包失败 dotnet nuget add...这里得注意下我是用ssh,因为我的Jenkins是使用了docker安装的,如果我使用了【构建】模块里的【执行shell】就会在Jenkins环境里进行编译、打包,同时也需要安装相应的环境 例如dotnet

    68410

    【翻译】.NET 💜 GitHub Actions: .NET 的 GitHub Actions 简介

    这些更改虽然经常受到审阅者的审查,但可以进行自动检查以确保代码编译和测试通过。 GitHub Actions 允许您直接从https://github.com上的源代码存储库构建、测试和部署代码。...作业:作业是工作流中在同一运行器上执行的一组步骤。 action:action是 GitHub Actions 平台的自定义应用程序,它执行复杂但经常重复的任务。...GitHub 状态检查 使用工作流的主要好处之一是定义可以确定性地使构建失败的条件状态检查。...可以将工作流配置为拉取请求 (PR) 的状态检查,如果工作流失败,例如拉取请求中的源代码无法编译 - 可以阻止 PR 被合并。考虑下面的屏幕截图,它显示了两个检查失败,从而阻止了 PR 被合并。...作为负责审查 PR 的开发人员,您会立即看到拉取请求的状态检查失败。您将与提出 PR 的开发人员合作,以通过所有状态检查。以下是显示“绿色构建”的屏幕截图,该构建的所有状态检查均已通过。

    1.1K20

    手动搭建自己的nuget服务器及使用

    这篇文章的主要目的: 1.搭建自己的私有的nuget服务器 2.打包代码为nuget包 3.在其他项目中使用私有服务器上的nuget包 一. 搭建自己的nuget服务器 1....2.使用nuget管理器,添加nuget.server包 ? 安装成功以后,目录结构如下图 ? 3. 在项目上右键 生成网站 ,并运行 效果如下: ?...6.现在nuget包就已经打好了 但是,如果我们想在我们的私有nuget服务器上有这个包,我们还需要把.nuget文件传到我们私有nuget服务器上; 如果有需要,可以自己在nuget私有服务器项目中添加一个上传功能...可以正常显示nuget私有服务器上的ClassLibrary1的nuget包,故这里就算成功了。 四. 最后,这里再说下,自己的一些尝试结果 1....时,并不能正常访问,所以,也失败。

    4.6K20

    .NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core RC2 MVC程序

    定义入口程序         定义初始化类型         定义Controller 步骤三、运行程序         恢复NuGet包         编译执行程序         向HomeController...定义NuGet.config 我们在NuGet.config文件中定义应用程序使用的NuGet包所在的站点地址(https://www.myget.org/F/aspnetrc2/api/v3/index.json...RC2中,我们可以向定义普通依赖一样来选择运行时(Microsoft.NETCore.App),或者说运行时本质已经成为了一个一般意义上的以来。...具体来说,我们创建了一个WebHostBuilder对象通过调用扩展方法UseKestrel为构建的HTTP消息处理管道注册了一个Kestrel服务器。...NuGet包以及编译执行.NET应用的相关操作都可以通过它来完成 恢复NuGet包 我们打开命令行工具并切换到应用所在的目录,执行dotnet restore命令恢复在project.json中使用的NuGet

    970100

    使用Jenkins部署.Net Core遇到的几个坑

    解决方法: 1.安装git client插件,并重启jenkins 2.确保安装jenkins的服务器同时也安装了git,并在jenkins上配置git的路径,如下图: ?...排查:切换到服务器cmd下进行restore后发现,原来是nuget作怪,因为服务器无法找到部署在本地服务器的nuget包 ? 2.发布Nuget包到官网 试着解决:试着把nuget包发布到官网。...如果你发布后发现代码没有生效,请确认你是否在release下进行编译,并且build过? ? 解决方法:如下图所示,极其简单,折腾的半天,晕!...三、全自动发布自家类库到Nuget官网或自家服务器   这里的发布改进了以往的手工发布。从代码上传那一刻开始,jenkins自动到git抓取代码,自动编译打包,然后上传到nuget服务器。...配置其实不麻烦,所有的jenkins编译都可以在系统内部自行跑一遍,如果系统能跑通,jenkins绝对没有问题。具体配置如下图所示: ? ?

    2.7K40

    微软发布 Visual Studio 扩展 NuGetSolver,简化 NuGet 依赖项冲突解决过程

    该扩展高效地解决了常见的 NuGet 错误和警告,帮助开发者在 Visual Studio IDE 中提高工作效率。...此外,作者还指出: 建议在你的存储库中启用源代码控制,以便在必要时可以轻松恢复 NuGetSolver 所做的更改。...这比使用 NuGet 包管理器一个一个地升级包更快速、更可靠,尤其是在面对其他依赖约束时。 该工具需要 Visual Studio 2022 和网络连接才能正常使用。...它从 nuget.org 检索可用的包版本,并从提供的缓存托管服务下载缓存数据库文件。 不过,在使用时要注意一些使用建议和已知的限制。目前仅支持 nuget.org 源,不支持多源和本地源。...虽然 NuGetSolver 可以解决编译时依赖冲突,但仍可能出现运行时错误。此外,该工具不验证建议的版本是否存在已知漏洞,因此建议开发者使用 NuGet 中的审计功能来解决此问题。

    64810

    C# dotnet 本地代码构建没问题,但 CI 自动构建失败可能的原因

    接口 而我在 B 文件开发,调用了原本 A 文件的原本的接口,此时一定我本地是能构建通过的,而我本地的这个分支在服务器上 CI 也是能通过的。...但是在合并到 master 之后进行 CI CD 就会炸了 因此,如果发现服务器 CI CD 构建失败了,请尝试拉取服务器的构建分支,如 master 分支,尝试在本地构建 NuGet 源 基本上只会在项目刚配置的时候翻车...,如果本地使用了私有的 NuGet 源,而服务器没有这个源,那么将拉包失败,构建不通过 因此判断是否此问题应该想看构建输出日志,如果是服务器报告说还原 NuGet 失败,找不到 xx 包。...但是在等的过程不妨看看是否是第二个可能,本地实际上使用了私有源 自己搭建一个 NuGet 服务器是十分简单的,我使用了 BaGet 搭建了一个私有源,我本地全局配置了这个私有源。...因此服务器找不到放在私有源的 NuGet 包,服务器就拉不到包,也就构建失败了 这个问题解决方案很简单,就是项目级配置用到的私有源,配置方法请看 VisualStudio 给项目添加特殊的 Nuget

    97010

    C# 搭建自己的NuGet服务器,上传自定义NuGet包

    在VS中修改NuGet引用路径 注意把自定NuGet放在首位,这样每次搜索都默认从MyNuGet开始。 以上就成功部署了自己的NuGet服务器了。...NuGet自动恢复功能 通过命令方式编译项目是如何自动恢复NuGet包?...1、下载Command Line http://docs.nuget.org/docs/start-here/installing-nuget 2、将Command Line.exe文件放置在解决方案...相关文档: NuGet官方文档:http://docs.nuget.org/ 总结: NuGet服务器可以非常方便的管理程序中所使用到的外部引用 通过NuGet自动恢复功能不仅可以清理项目中不需要的外部依赖...通过项目管理工具SVN/TFS等管理源代码,我们只需要上传源代码而无需上传Packages文件架,客户端获取代码重新编译会自动恢复所依赖的package,极大的增加了 代码获取的速度。

    1.2K20

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

    前言 最近一直在完善我今年的两款桌面软件:视频剪辑工具 Clipify[1] 和 AI 文章创作工具 StarBlogPublisher[2] 虽然界面是基本完善了,但图标还是默认的,显得很不专业 于是我打算给这俩软件换个好看的图标...找到了一个基于 nodejs 实现并且零依赖的(大部分都是依赖于 Magick 这个 C++实现的图片库),然而很遗憾,这个工具在我电脑上并不能使用…… 目标 这时我想起来之前曾经用 c# 开发了一个图片格式转换工具...对于大于 256 的尺寸(如 512×512 或 1024×1024),在文件头中仍然会显示为 0(即 256),但实际图像数据可以包含更大尺寸的图像。...只需推送一个符合语义化格式的标签(如 v1.0.0),系统将自动: 构建并发布 NuGet 工具包 针对 Windows / Linux / macOS 编译原生 AOT 可执行文件 自动上传所有产物到...GitHub Release 发布 nuget 部分比较容易,这里就不重复了 编译三平台 AOT 可执行文件(build-executables) 采用 GitHub Matrix 构建策略,分别针对

    21200

    C# 搭建自己的NuGet服务器,上传自定义NuGet包

    在VS中修改NuGet引用路径 ? 注意把自定NuGet放在首位,这样每次搜索都默认从MyNuGet开始。 以上就成功部署了自己的NuGet服务器了。...NuGet自动恢复功能 通过命令方式编译项目是如何自动恢复NuGet包?...1、下载Command Line http://docs.nuget.org/docs/start-here/installing-nuget 2、将Command Line.exe文件放置在解决方案...相关文档: NuGet官方文档:http://docs.nuget.org/ 总结: NuGet服务器可以非常方便的管理程序中所使用到的外部引用 通过NuGet自动恢复功能不仅可以清理项目中不需要的外部依赖...通过项目管理工具SVN/TFS等管理源代码,我们只需要上传源代码而无需上传Packages文件架,客户端获取代码重新编译会自动恢复所依赖的package,极大的增加了 代码获取的速度。

    2.3K50

    Nexus Repository私服挂了后怎么办?

    Maven的还原 在开发人员或构建服务器的~/.m2下会有完整的使用过的maven仓库,使用命令`mvn deploy:deploy-file`即可重新传上去,但这东西不可能人为完成。...os.path.isdir(path): traversal(path) traversal(rootdir) 此脚本可以无限执行,仓库里已经存在的包不会重复上传,建议先在构建服务器上执行过...Nuget仓库的还原 与上面的方法类似在构建服务器上,每个项目下会有一个名字为Packages的目录,该目录下会有Nuget仓库里需要使用的nupkg文件。...但nuget的上传不是依赖账密,而是是使用安全码,登录你的Nexus OSS系统。点击你的账号,会有一个NuGet API Key按钮点击下可以获得一个密钥串,一定要保存好脚本中需要使用到。...OrientDB在Nexus的后台可以使用Task进行定时备份。异地恢复的方式: 1. 先停止Nexus服务 2. 清空`$data-dir/db`下的文件 3. 将备份好的blob拷贝过回 4.

    89820

    dotnet 配置 Gitlab 的 Runner 做 CI 自动构建

    今天在少珺小伙伴的协助下,使用了 gitlab 的 runner 给全组的项目做自动的构建。...为什么需要使用 Gitlab 的 Runner 做自动构建,原因是之前是用的是 Jenkins 而新建一个底层库项目想要接入自动构建等,需要来回在 Gitlab 和 Jenkins 上配置,大概步骤差不多有...于是我就和头像大人商量使用虚拟机环境的方法,我在空闲的服务器上安装了 VirtualBox 虚拟机,然后在虚拟机部署 Runner 接着在项目接入,这样就可以确定打包的环境,同时迁移服务器也比较方便 我在团队内负责团队各个项目用到的...CBB 也就是底层库也就是 NuGet 包项目的维护,作为配置管理员,最近有好多项目在准备接入,而小伙伴有炸掉了之前的 Jeknins 打包服务器,因为他需要在 Jenkins 打包服务器上安装 VS...打包失败 虚拟机是用的是 nat 方式,建议使用桥接方式让 gitlab 和虚拟机在相同局域网 虚拟机里面的 runner 使用服务运行,也就是访问不到用户变量和用户路径的文件 首先在服务器上安装 VirualBox

    2.6K20

    dotnet CBB 为什么决定推送 Tag 才能打包

    A 本地生成的 NuGet 库,那么其他小伙伴将找不到这个 NuGet 库,无法构建通过 如果小 A 不推送代码,只是写了一个 commit 但是这个 commit 包含了 L 库的代码,但是没有在...csproj 里面升级 L 库版本,那么在回滚代码的时候,进入到这个 commit 将构建失败 如果小 A 在 commit 里面升级到他本地生成的 NuGet 库,那么回滚代码的时候,因为公共服务器不存在小...A 的本地的 NuGet 库,依然会构建失败 此时有一个叫头像的小伙伴出了一个馊主意,小 A 虽然 L 库代码没有被合并,但是可以知道这个 L 库被合并之后分配的版本号,此时就在 csproj 里面更新到这个版本...,但是实际上最后发布的时候更改了公开方法,此时回滚到这个 commit 虽然能下载到 NuGet 库,但是发现 L 库的公开方法不匹配,构建失败 这就是为什么选用推送 Tag 打包的原因,允许小伙伴自己选择预览版的版本推送...此时的 commit 其他小伙伴也能构建,回滚代码的时候也可以在公共服务器找到 NuGet 包或切换到对应版本的源代码 在 VisualStudio 的帮助下,使用推Tag打包的成本非常低,因为在 VS

    46320

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

    此文件旨在: 替换 NuGet 文件管理器 package.config 文件,它可标识项目的 NuGet 引用。 指定项目支持的框架,以及有关如何为特定框架构建项目的配置详细信息。...我们创建的项目可以针对一个或者多个Framework(比如我们希望创建的可以同时在.NET Framework和.NET Core上运行),支持的Framework定义在frameworks节点下。...,在nuget管理中也可以看到这是默认的离线包目录,我们需要什么样的包只要把它复制到这个目录,在nuget管理中的程序包源选择离线的源即可。...它的工作方式 和 npm以及 RubyGems非常相似,你可以把这个文件签入版本库,也可以不签入,但此文件不存在时,将运行 NuGet restore 还原以重新创建。...假设你有公司范围的“框架”程序集,可以在众多团队之间共享。但是, 但是,框架包实际上是开源的,因此公司内(或者,甚至更好,公司外部)的任何人员均可进行完善和更改。

    2.7K80

    刚刚我从服务器回滚了 dotnet 5 的环境

    今天是 2020.11.13 我在 CI 服务器上更新 dotnet 到 dotnet 5 以及 VS 到 16.8.1 最新版本,但是我在刚刚不得不回滚了环境…… 因为构建不通过 现象 使用经典的 NuGet...还原加上 msbuild 的构建,如以下代码将会构建失败 nuget restore msbuild /p:Configuration=Release 构建失败核心提示如下 C:\Program Files...或者在 dotnet build 里面使用了 dotnet core 版本的 msbuild 丢失了旧版本 dotnet framework 版本的 msbuild 支持的旧版本功能,让一些旧版本项目构建不通过...我当前的 CI 服务器上依然承担了一定数量的旧版本项目的任务,因此 dotnet 5 环境暂时还不能支持,只能回滚了 彻底的解决方法 彻底的解决方法是: 再等几天 更新到 NuGet 5.8 就能解决...这是全网首个能支持 .NET 5 的 NuGet 版本,在 https://dist.nuget.org/win-x86-commandline/v5.8.0/nuget.exe 可以下载 ----

    77910

    通过Mono 在 Heroku 上运行 .NET 应用

    英文原文:Running .NET on Heroku 中文原文:在 Heroku 上运行 .NET 应用 自从加入了Heroku之后,我就想在这个平台上运行.NET程序。...我的目标是能够在Windows上使用Visual Studio创建一个ASP.NET MVC解决方案去创建一个Heroku的应用程序。...它能够使用git命令push Heroku,构建Heroku,应用部署在Mono和XSP网络服务器。 result主要是基于原先我工作的同事Brandur。...你可以在 这里 看到运行的例子。 总结 能够正常运行的: 在 Mono 3.0.11 和 XSP 3.0.11 中运行 ASP.NET MVC 4....NuGet 包仓库 所以你不用手动添加你的依赖库。 编译输出缓存及增量编译,包括已下载的 NuGet 包的缓存。 运行 EXE文件以作为后台工作线程。

    4.2K60

    Visual Studio 智能提示错误修复案例

    代码能够编译通过,但是 Visual Studio 编辑器会提示错误,找不到类型引用之类的,一堆红线,写代码还没有了智能提示。...问题 我这里遇到的是 nuget 还原的问题,在编译之前,nuget 还原成功,编译通过之后,nuget 就会提示还原错误,此时重新手动还原一次 nuget,就一切恢复正常的。...既然重新手动还原一次 nuget 就正常了,那就在编译之后,自动还原一次 nuget 。...-- 在编译完成之后,还原一次 nuget 包, 解决这个项目编译完成,nuget 包就莫名奇妙提示还原问题,导致代码智能提示错误的问题 --> <Target Name="PostBuild...blog.jgrass.cc/posts/fixing-visual-studio-intellisense-errors/ 本作品采用 「署名 4.0 国际」 许可协议进行许可,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接

    58010

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

    但需要特别说明的是: 【重要】如果你包含 lib 文件夹,那么你应该分拆成两个 NuGet 包!...托管、C++/CLI 和本机依赖包(双包) 双包方案旨在解决托管程序集和 C++/CLI 程序集无法在同一个 NuGet 包中被引用的问题。...(实际上是可以正常引用并编译通过的,但在 .NET Core 框架下无法运行。) 第四步:再建一个普通的类库 再建一个普通的类库,引用之前创建的项目。...使用效果 当你将两个 NuGet 包都推送到 NuGet 服务器上去之后,你就可以在你的业务中使用这两个 NuGet 包了: 如果你只做了一个单包,那么直接引用这个单包即可 如果你做的是双包,那么引用其中托管的那一个即可...如果你使用 .NET 的发布功能将其发布成框架独立的应用程序,那么编译器会自动将 runtimes 里面的对应架构和框架的文件拷贝至输出目录下,于是你就能正常运行你的程序了。

    1.6K50
    领券