首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一文搞定SonarQube接入C#(.NET)代码质量分析

MSBuild安装与配置 Visual Studio IDE在编译*.sln解决方案时默认是调用msbuild.exe来实现的。..." 清理项目 -t:clean 重新编译 -t:rebuild 编译项目 -t:build 默认可以忽略这个参数 发布 -t:Publish 注意:这里的 -t 和 /t 作用是相同的。...4. Sonar+命令行分析C#代码 1、打开CMD,切换到指定的项目根目录,必须和.sln或者.csproj同级目录。...(简写n):对应projectName即项目的名称,为项目的一个显示的名称,建立使用完整的项目名称 /version(简写v):对应projectVersion即项目的版本,项目在不同的时期版本也是不一样的...常见问题 1、解决SonarQube检测C#执行成功,但不能获取检测结果的问题,现象如下图所示。 ? 由图中可以看到文件扫描成功了,但是却没有任何文件被发现,所有的指标数据皆为0。

5.5K31

从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建

一、Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actions...持续集成(Continuous Integration):在传统的软件开发过程中,将个人开发的代码与整个项目代码的合并一般都会置于比较靠后的阶段,而持续集成强调的是开发人员提交了新代码之后,立刻进行构建...SonarQube 由于历史原因,部门系统的框架版本横跨了 VB.NET、.NET Framework 2.x,4.x 与 .NET Core,.NET 框架的程序涵盖了 Web Form、MVC、Web...IDE 也过于浪费,所以这里还是会选择独立的安装 MSBuild 与 VS 相似,MSBuild 也有不同的版本,为了避免一些莫名其妙的问题,在 MSBuild 的版本选择上,最好选择与你们开发时用的...3.5、总结 自此,目前使用到的软件所需的环境就已经安装配置完成了,在下一篇中就可以安装我们主要使用到的两个软件 Jenkins 和 SonarQube,从而配合我们已经存在的 Gitlab,构建自己的

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

    从零开始针对 .NET 应用的 DevOps 运营实践 - 运行环境搭建

    一、Overview 最近的一段时间,在公司里我都在进行基于 Jenkins 和 SonarQube 配合已有的 Gitlab 搭建部门的持续集成环境的工作,虽然之前有使用过 GitHub Actions...持续集成(Continuous Integration):在传统的软件开发过程中,将个人开发的代码与整个项目代码的合并一般都会置于比较靠后的阶段,而持续集成强调的是开发人员提交了新代码之后,立刻进行构建...SonarQube 由于历史原因,部门系统的框架版本横跨了 VB.NET、.NET Framework 2.x,4.x 与 .NET Core,.NET 框架的程序涵盖了 Web Form、MVC、Web...IDE 也过于浪费,所以这里还是会选择独立的安装 MSBuild 与 VS 相似,MSBuild 也有不同的版本,为了避免一些莫名其妙的问题,在 MSBuild 的版本选择上,最好选择与你们开发时用的...3.5、总结 自此,目前使用到的软件所需的环境就已经安装配置完成了,在下一篇中就可以安装我们主要使用到的两个软件 Jenkins 和 SonarQube,从而配合我们已经存在的 Gitlab,构建自己的

    84931

    Jenkins基础系统之完整的.net项目编译

    一、目标 搭建jenkins服务器以及配置一台.net编译的slave客户端 完整跑通一个asp.net项目的发布 二、搭建jenkins环境 2.1 安装jenkins 1....根据官网提示安装 进入jenkins官网下载==最新(如果不是最新的包,可能会存在推荐插件不能安装的现象)==的稳定包,我使用的是2.222版本 下载好war(推荐用war包,方便)包后,运行如下命令...plugin 执行ps脚本 MSBuild Plugin 编译.net项目 File Operations...注意 其中配置的msbuild路径应该是.net编译环境所在位置,如果是在slave机器上,要配置slave机器上的路径 此处注意msbuild版本的选择,此处配置为.net4.5的msbuild路径...此处注意凭据的选择,应该是对应得上,以及svn的地址要填写正确 3.5 配置nuget ?

    88431

    .NET Standard中配置TargetFrameworks输出多版本类库

    项目组织方式与传统类库项目的组织方式不同 ? 4、项目,右键【属性】-->【应用程序】--> “目标框架”默认是 .NET Standard 2.0。 ? 也可以修改为其他版本 ?...7、配置多目标框架 关于如何指定多目标框架,请参考博客《.NET Standard SDK 样式项目中的目标框架》 我做的BIMFACE二次开发的接口的目标是支持 .NET Framework4.0...正常来说应该在VS的“引用管理器”界面上提供目标框架的下拉选择框,可以自由切换选择不同的目标框架,但是到目前为止VS没有此功能,我的VS版本信息如下 ? 希望微软在后续VS版本中能增加此功能。....NET 目标框架的预处理器符号的完整列表如下: ? 除此之外,开发者可以通过配置自定义常量的方式达到与.NET目标框架中预定义的预处理符号相同的功能。...请了解下Roslyn中的确定性构建 其它生成方式、汇编内部版本号后面两位的生成规则,请看使用Visual Studio时是否可以自动增加文件构建版本、Visual Studio 2017中的自动版本控制

    3K21

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

    今天是 2020.11.13 我在 CI 服务器上更新 dotnet 到 dotnet 5 以及 VS 到 16.8.1 最新版本,但是我在刚刚不得不回滚了环境…… 因为构建不通过 现象 使用经典的 NuGet...但是以上方法都有缺点,在一些使用旧版本格式的 csproj 项目文件里面,以及一些 VSTO 项目,或者引用了 COM 的项目和 VS 插件项目等类型里面,将因为 dotnet restore 的不支持导致后续构建不通过...或者在 dotnet build 里面使用了 dotnet core 版本的 msbuild 丢失了旧版本 dotnet framework 版本的 msbuild 支持的旧版本功能,让一些旧版本项目构建不通过...我当前的 CI 服务器上依然承担了一定数量的旧版本项目的任务,因此 dotnet 5 环境暂时还不能支持,只能回滚了 彻底的解决方法 彻底的解决方法是: 再等几天 更新到 NuGet 5.8 就能解决...如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页 本作品采用 知识共享署名-非商业性使用-相同方式共享

    62510

    msbuild 使用 ProduceOnlyReferenceAssembly 创建作为引用的仅公开成员程序集

    或者说在特定平台上不知道如何实现,只是为了辅助构建通过而已,如我在 Unity 3D 上提供的一些库,表示我不知道如何实现,我只是为了让构建能通过而已 使用 ProduceOnlyReferenceAssembly...可以让输出的程序集 dll 或 exe 里面只是包含了公开的成员的定义,但不包含具体的实现代码。...这样的程序集是仅仅作为被引用的程序集使用的,不能被实际调用 下面来告诉大家如何构建这样的程序集,构建有两个方法,第一个是放在 csproj 项目文件里面。...,如 msbuild 命令,在构建完成之后输出的 dll 可以看到比之前的小很多。...,里面不包含具体的实现 此构建方法适合在库里面进行,如果是在一个大的应用项目里面构建,如果发现构建不通过,就需要你了解很多构建相关的知识才能解决哈 官方文档是 Reference assemblies

    78020

    dotnet build

    项目通过项目引用或 NuGet 包引用所依赖的其他库。 对于目标版本低于 .NET Core 3.0 的可执行项目,通常不会将 NuGet 中的库依赖项复制到输出文件夹。...有关详细信息,请参阅 .NET 应用程序部署。 对于面向 .NET Core 3.0 及更高版本的可执行项目,库依赖项会被复制到输出文件夹。...这意味着如果没有其他任何特定于发布的逻辑(例如,Web 项目具有的逻辑),则应可部署生成输出。 隐式还原 构建需要 project.assets.json 文件,该文件列出了你的应用程序的依赖项。...自 .NET Core 3.0 SDK 起可用。 --no-self-contained 将应用程序发布为与框架相关的应用程序。 必须在目标计算机上安装兼容的 .NET 运行时才能运行应用程序。...针对特定运行时(本例中为 Ubuntu 18.04)生成项目及其依赖项: .NET CLI复制 dotnet build --runtime ubuntu.18.04-x64 生成项目,并在还原操作过程中使用指定的

    2K20

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

    林德熙 当现有的知识和文档不足以帮助你完成现有功能的时候,也许你该考虑阅读官方源码了: 解读 Microsoft.NET.Sdk 的源码,你能定制各种奇怪而富有创意的编译过程 - 吕毅 Reading...入门:使用 Roslyn 静态分析现有项目中的代码 - 吕毅 Roslyn 入门:使用 .NET Core 版本的 Roslyn 编译并执行跨平台的静态的源码 - 吕毅 额外的,你可以阅读更多 Roslyn...理解 Roslyn 中的红绿树(Red-Green Trees) - 吕毅 一些 Roslyn 的额外功能: Roslyn 的确定性构建 - 吕毅 SourceFusion 预编译框架 关于预编译框架的博客没有那么多...- 吕毅 扩展阅读 这里是是用到了 csproj / NuGet 等的额外博客: 语义版本号(Semantic Versioning) - 吕毅 (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个...UWP 程序 - 吕毅 dotnet core 通过修改文件头的方式隐藏控制台窗口 - 林德熙 使用 GitVersion 在编译或持续构建时自动使用语义版本号(Semantic Versioning

    42640

    理解 C# 项目 csproj 文件格式的本质和编译流程

    于是,我将新的 csproj 文件结构也进行简化,用思维导图进行了分割。总结成了下图: ? 比较两个思维导图之后,是不是发现其实两者本是相同的格式。...这些属性的含义完全是由外部来决定的,例如在旧的 csproj 格式中,编译过程中会使用 TargetFrameworkVersion 属性,以确定编译应该使用的 .NET Framework 目标框架的版本...原因显而易见了——为了在多个项目中使用,一处更新,到处生效。所以有没有觉得很好玩——如果把版本号单独放到 props 文件中,就能做到一处更新版本号,到处更新版本号啦!...当我使用 msbuild 编译时,我的地址:C:\Program Files\dotnet\sdk\2.1.300\Sdks\Microsoft.NET.Sdk\build\。....NET Framework,引入其他各种各样的目标框架,例如 netstandard2.0、net472、uap10.0 等(可以参考 从以前的项目格式迁移到 VS2017 新项目格式 - 林德熙)

    2.6K10

    将 WPF、UWP 以及其他各种类型的旧 csproj 迁移成基于 Microsoft.NET.Sdk 的新 csproj

    阅读 MSBuild.Sdk.Extras 来了解更多。 新 csproj 文件的优势与直观体验 如果你已经体验过新 csproj 文件的好处,那么直接前往下一节即可。没体验过的话就来体验一下吧!...(如果 A 引用了 B,B 引用了 C;那么 A 不需要显式引用 C 也能调用到 C) 可以一边编辑 csproj 一边打开项目,互不影响 可以指定多个开发框架,详见 让一个项目指定多个开发框架 - 吕毅的博客...不过,.NET Framework 项目也能够有限地得到支持。具体可支持的类型以及迁移方法我的小伙伴写了一篇博客,请前往此处查看:从以前的项目格式迁移到 VS2017 新项目格式 - 林德熙。...目前没有自动的迁移方法,至少在我的实际迁移过程中,只有少数项目能够直接编译通过。由于以上我的小伙伴给出了具体的迁移方法,所以此处我只给出迁移思路。...net47 第二步:修改目标 .NET Framework 框架版本号,

    1.5K20

    dotnet 通过引用 msbuild 程序集实现自己定制编译器

    本来我想说的是基于引用 msbuild 程序集来自己做一个编译器,但是想想好像本文做的,和造编译器没啥关系,咱自己调用 msbuild 的 API 而已。...或 msbuild 命令,然而通过命令行调用用的是跨进程的方式,如果期望做更多的定制化,最好还是放在相同的进程,此时可以更改构建的各个步骤 自己制作一个编译器最简单的方法就是引用现有的成熟的编译器作为组件...,刚好 msbuild 最新版本也是使用 dotnet 框架编写的,咱的 dotnet 应用可以非常方便将 msbuild 引用进来。...当然了,本文不讨论如何自己发布 msbuild 的问题,因为这又是另一个坑了。本文的方法是引用本机已安装好的 msbuild 程序集 在开始之前,请新建一个控制台项目。...); 注册完成之后,将可以使用 msbuild 提供的各个类来实现构建,请新建一个方法用来编写调用 msbuild 各个类的构建代码。

    76040

    Java VS .NET:Java与.NET的特点对比

    而是针对Java平台跟.NET平台做一些对比。主要围绕项目构建、Web框架、项目部署展开讨论。相信经过这些讨论可以让Java/.NET工程师对Java平台、.NET平台有更好的了解。...二、项目构建 项目构建工具 工欲善其事必先利其器。开发环境配置+工具使用当然要先讲了。...从这个点上来说,Java的入门曲线会稍陡一些,但是Java工程师也会比.NET工程师更有机会关注到项目构建的一些细节。...VS+MSBuild IDE+Maven .NET项目的模板是VS自带的,是直接符合MSBuild(编译器)标准的,项目由sln+csproj文件组织,Java平台编译器的标准是公开的,目前主流项目都是基于...NET平台主流的编译器是MSBuild,MSBuild提供的标准,Visual Studio按照标准提供了基于.sln文件+csproj文件的项目模板。

    2.3K50

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

    紧接着,我们需要打开编辑此项目的 .csproj 文件,将目标框架改成多框架的,并填写必要的信息。 <!...要点 2: 注意,我们使用 NuGet 包来依赖 Task 框架,但此 NuGet 包要求的最低 .NET Framework 版本为 4.6。...,在这个文件夹中的文件会在编译时拷贝到输出目录(保持文件夹结构) + content/ // 这里放 .props 和 .targets 文件,会自动被 NuGet 导入,成为项目的一部分(要求文件名与包名相同...) + build/ // 这里也是放 .props 和 .targets 文件,会自动被 NuGet 导入,成为项目的一部分(要求文件名与包名相同) + buildMultiTargeting/ //...准备一个用于测试 Task 的测试项目 接着,我们在解决方案中新建一个调试项目 Walterlv.Debug(我选用了 .NET Standard 2.0 框架)。

    1.4K10

    Jenkins Pipeline+SonarQube+Python集成钉钉群消息自动通知(webhook版)

    :使用代码来控制项目的构建、测试、部署等。...使用它的好处有很多,包括但不限于: 使用 Pipeline 可以非常灵活的控制整个构建过程 可以清楚的知道每个阶段使用的时间,方便优化 构建出错,使用 stageView 可以快速定位出错的阶段 一个...job 可以搞定整个构建,方便管理和维护等 新建Pipeline项目 建一个 Pipeline 项目,写入 Pipeline 的构建脚本,就像下面这样 job UI 界面(参数化构建) 在配置 job...的时候,选择参数化构建过程,传入项目仓库地址、分支、等等。...Jenkinsfile 通过git管理,带来的好处如下: 方便多个人维护构建CI,避免代码被覆盖 方便构建 job 的版本管理,比如要修复某个已经发布的版本,可以很方便切换到发布版本时候用的 Pipeline

    4.4K30

    WPF 讲讲 Microsoft.NET.Sdk.WindowsDesktop 的原理

    在使用 .NET Core 3.0 和以上版本,可以使用新的 SDK 版本支持的 csproj 项目文件,这个 SDK 格式的项目文件可以支持 .NET Core 以及 .NET Framework 版本的...的功能分为以下部分 定义引用 App.xaml 作为应用定义 定义页面引用和构建方法 添加 FrameworkReference 框架依赖 引用框架需要的引用 移除不支持的框架版本 请让咱按照功能一步步看代码...以及要求 vbproj 之外 接下来就是引用 Page 默认页面了,默认页面里面 EnableDefaultPageItems 决定是否引用所有页面 下一步就是引用框架了,通过源代码注释可以了解到不同的框架版本需要引用不同的框架如下...在 targets 文件里面主要是用来更改构建步骤的,功能如下 移除重复的页面引用 提示构建项重复 提示 SDK 版本警告 移除重复的页面引用,需要移除页面里面引用的 @(Resource);@(Content...MSBuild Task 的跨平台的 NuGet 工具包 - walterlv 最后一部分就是 NetSdkWarning 用来提示版本警告 通过了解 Microsoft.NET.Sdk.WindowsDesktop

    1.5K10

    .Net Core迁移到MSBuild的多平台编译问题

    虽然现在可以从无到有的使用VS2017来创建一个新的MSBuild项目,但是还是有好多遗留程序使用着以JSON格式存储的项目配置文件为基础的项目。...Scott Hanselman也在博客中发文教大家怎么使用新的.NET SDK RC4工具将project.json转换到MSBuild的.csproj项目系统。...当时ASP.NET Core的第一个版本为了使开源平台对开发者更具吸引力,ASP.NET Core采用了一种基于JSON的项目系统project.json文件定义,这是一种与Node.js类似的定义,这对于吸引...因些微软宣布他们将为.NET Core重新启用和规范MSBuild构建系统。...在最新的.NET Core SDK 1.0 RC4 版本中,dotnet cli(命令行接口,dotnet cli 1.0.0-preview3-004056及以后版本)已经包含了”dotnet migrate

    82820

    .Net Core迁移到MSBuild平台(二)

    一、前言 在上一篇文章.Net Core迁移到MSBuild的多平台编译问题中,简单的讲了下新的项目配置文件中的节点配置,这篇我将用一些例子来详细讲下从project.json迁移到msbuild过程的节点配置...做过完整迁移新项目配置文件的朋友,肯定会觉得新的项目配置文件Msbuild的配置太扯了,虽然能直接编辑项目文件,但整个配置文件中没有了像project.json中的智能提示,当你在打开文件后你就会发现以前很轻松能写出来的...二、XML定义 新的.csproj是基于xml格式的,下面介绍下project.json与.csproj文件的差异定义的例子: 项目名称 (ProjectName) { "name": "MyProjectName..." } 在csproj的配置中并没有对应的定义,它只会有项目文件名相同如:MyProjectName.csproj 程序集版本 (Version) { "version": "1.0.0-alpha...的项目配置系统还是比较灵活的,以后整个dotnet体系的构建过程也都得到了统一。

    1.8K20
    领券