前言 在iOS项目开发的过程中,如果版本迭代开发的时间比较长,那么在很多版本开发以后或者说有多人开发参与以后,工程中难免有一些垃圾资源,未被使用却占据着api包的大小!...这里我通过Python脚本来查找项目中未被使用的图片、音频、视频资源,然后删除掉;以达到减小APP包大小的目的!...,那就先删除project.pbxproj中的引用,再删除本地资源文件; # 删除无用的资源文件 def delAllRubRes(): global _resNameMap, _hadDelMap...,开始从_resNameMap中移除已被处理过的资源文件 # 并删除本地的对应的资源文件 for item in _needDelResName: tmp_path = _resNameMap...conLog.info_delRes(_resNameMap) _isCleaing = False 软件 鉴于有些iOS开发程序员没有Python基础,这里做了一个图形化操作界面,欢迎大家下载使用
上次介绍了Azure Application Insights,实现了.net core程序的监控功能。这次让我们来看看Azure DevOps Pipeline功能。...这里跟Github一样,需要选择私有还有公开,估计Azure DevOps后端其实就是使用了Github的服务。...创建ASP.NET MVC项目 新建一个ASP.NET MVC项目,就默认的示例项目就行。 ? 为了让pipeline执行单元测试,所以我们新建一个单元测试功能,然后写一个最简单的单元测试方法。...就是使用上面的仓库的地址、用户名、密码。这是git的问题了,不多说了。那么上面是一些准备工作,下面开始正式使用pipeline。...trigger:表示代码的分支 vmImage:表示虚拟机的环境,是win还是linux。 variables:定义了一些参数,后面的设置可以直接使用。
比如我们在 Linux 系统上以命令 dotnet xxx.dll 运行 .NET Core 应用程序时,如果我们结束会话,那么我们的程序将会结束运行。...这时我们就需要一个守护进程来管控我们的 .NET Core 应用程序进程。 二.让进程后台运行 Linux 下让进程后台方式很多,举栗子:Supervisor、Screen、nohup 命令 等等。...博主经过长期的在 Linux 下的摸爬滚打,最终发现使用pm2来守护 .NET Core 进程完全没有问题,除了 nodejs 其他的很多程序都是可以的。...这里需要说明一下是使用 pm2 来让进程后台运行,因为如果不是 nodejs 程序, pm2的一些为nodejs准备的功能可能是无法使用的,但是对于我们守护 .NET Core 应用程序足够了。...使用 pm2 守护 ASP.NET Core 应用程序 5.1 创建一个 webapi 项目 # 创建项目 dotnet new webapi --no-https -o testwebapi # 发布项目
我们有多种工具可以将程序集合并成为一个。打包成一个程序集可以避免分发程序的时候带上一堆依赖而出问题。 ILMerge 可以用来将多个程序集合并成一个程序集。...本文介绍使用 ILMerge 工具和其 NuGet 工具包来合并程序集和其依赖。 ---- 以 NuGet 包的形式使用 ILMerge ILMerge 提供了可供你项目使用的 NuGet 包。...ILMerge 将这些依赖和我们生成的主程序合并成一个程序集,这样分发程序的时候只需要一个程序集即可。...如果你希望在你的项目当中进行尝试,可以把所有 /log 参数之后的那些程序集名称改为你自己的名称。 那么在编译的时候使用命令 msbuild /t:ILMerge 就可以完成程序集的合并了。...目标平台,如果是 .NET Framework 4.0 - .NET Framework 4.8 之间,则都是 v4 在合并完成之后,我们反编译可以发现程序集中已经包含了依赖程序集中的全部类型了。
使用 @addTagHelper 添加标记帮助程序 如果创建名为 net5MVC 的新 ASP.NET Core Web 应用,将向项目添加以下 Views/_ViewImports.cshtml 文件...使用 @removeTagHelper 删除标记帮助程序 @removeTagHelper 与 @addTagHelper 具有相同的两个参数,它会删除之前添加的标记帮助程序。...在 Views/Folder/_ViewImports.cshtml 文件中使用 @removeTagHelper,将从 Folder 中的所有视图删除指定的标记帮助程序。...使用退出字符(“!”)禁用标记帮助程序 使用标记帮助程序选择退出字符(“!”),可在元素级别禁用标记帮助程序。 例如,使用标记帮助程序选择退出字符在 中禁用 Email 验证: 的元素才支持标记帮助程序(可使用标记帮助程序的元素以独特字体显示)。
通常我们需要监测ASP.NET MVC 或 Web API 的应用程序的性能时,通常采用的是自定义性能计数器,性能计数器会引发无休止的运维问题(损坏的计数器、权限问题等)。...例如可以使用Log4net进行输出,具体参见 https://github.com/nkot/Metrics.Log4Net 。...构建的ASP.NET MVC 应用程序的性能指标,如下表所示: 计数器名称 描述 Last Call Elapsed Time 已完成最后一次调用的所花费的时间。...引发 未捕获的异常的比率。...对 HttpContext 项目字典是用于当数据需要在请求过程中不同的 Http 处理程序和模块之间共享而设计的。使用的诀窍是基于属性类型的完整名称和 ASP.NET 生成的唯一 id 的方法。
菜单的创建可以通过可视化的方法创建,也可以通过编写资源脚本的方式创建菜单资源,在这里重点说明如何通过脚本编写的方式创建菜单 //Menu IDM_MENU MENU BEGIN POPUP "...(&H)", HELP BEGIN MENUITEM "帮助主题(&H)\tF1", IDM_HELP MENUITEM "关于本程序...DISCARDABLE:菜单的内存属性,标示菜单在不再使用的时候可以暂时从内存中释放以节省内存 菜单项的定义方法有3种分别对应不同类型的菜单项: MENUITEM 菜单文字,命令ID, [选项列表]...数值:表示ASCii码为该数值的字母,这个时候类型必须指明为ASCii 命令ID:按下加速键以后Windows向程序发送的命令ID,如果想把加速键和菜单项关联起来,这里就是相应的菜单项的ID 类型:用以指定键的定义方式...WM_COMMAND的消息,将该项的相关信息告诉给其父窗口,该消息的说明如下: WM_COMMAND wNotifyCode = HIWORD(wParam); // 通知码 若对应的资源为加速键该值为
Python由于本身的特性原因,执行程序期间可能效率并不是很理想。在某些需要自己提高一些代码的执行效率的时候,可以考虑使用C#、C++、Rust等语言开发的库来提高python本身的执行效率。...接下来,我演示一种使用.NET平台开发的类库,来演示一下Python访问.NET类库的操作实现。类库演示包括.NET Framework、.NET Standard、.NET CORE+环境。...运行Python程序,可以看到.net fx类库的方法被成功调用并返回。 测试.net standard项目。...对刚才的.net8类库项目降级为.net6,再重新编译,然后替换到之前的测试用文件夹内。 再重新执行python程序,可以看到被成功调用了。...上面这个只是使用.net standard2.1环境,如果使用更高版本的.net类库环境,估计还会更加拉大差距。
本文将以.NET8的模板增加的.http文件为引,介绍 Visual Studio 2022 中的 .http 文件编辑器,这是一个用于测试 ASP.NET Core 项目的强大工具。 1....背景 在.NET8 新的 Web API 项目模板中增加一个新的文件,该文件以“项目名.http”命名。...在 Visual Studio 中使用 如果你已经使用了最新的 .NET8 的项目模板,在 WebAPI 项目中就已经包含了 .http 文件,你可以通过该文件发起 HTTP 请求进行测试,当然,先决条件还是需要启动服务...请求结果 3.1 终结点资源管理器 对于升级到 .NET8 的项目,或者后续添加的新接口,我们可以通过终结点资源管理器来自动创建和编辑 .http 文件。...通过遵循正确的文件语法并利用编辑器和终结点资源管理器的功能,你可以轻松地创建、发送和查看 HTTP 请求及其响应。这将有助于提高你在开发 Web 应用程序时的效率和准确性。
这个对于我们.NET开发而言是一个值得关注和重视的问题,防止应用程序被反编译的手段有很多本文我们主要讲讲如何使用ConfuserEx .NET开源免费的代码混淆工具保护你的.NET应用程序。...ConfuserEx .NET混淆工具介绍 ConfuserEx是一个功能强大且广泛使用的.NET代码混淆工具。它支持多种混淆技术,包括控制流混淆、字符串加密、资源加密等。...注意注意:不足的是目前只支持.NET Framework 2.0/3.0/3.5/4.0/4.5/4.6/4.7/4.8,不支持.NET Core代码混淆,本章.NET版本代码示例使用的是.NET Fx4.7.2.../ConfuserEx/releases ConfuserEx-GUI.zip包解压即可使用: 使用ConfuserEx工具混淆.NET Fx .dll文件 添加需要混淆的.dll文件 将待混淆的.dll...混淆成功保存的文件目录: 混淆前后反编译代码对比 混淆之前反编译结果: 混淆之后反编译结果: 一、用ILSpy无法打开: 二、用.NET Reflector反编译结果: 使用ConfuserEx工具混淆
如果默认区域性的资源嵌入在应用的主程序集中,并且 ResourceManager 必须检索与默认区域性属于与同一区域性的资源,则 ResourceManager 会自动使用位于主程序集内的资源,而不是搜索附属程序集...这样可绕过常用程序集探测,提高所加载的第一个资源的查找性能,并可缩小工作集。 提示 有关 ResourceManager 用于探测资源文件的过程,请参阅打包和部署资源。...解决冲突 若要解决此规则的冲突,请将属性添加到程序集,并指定非特定区域性的资源的语言。 指定资源的非特定语言 在“解决方案资源管理器”中,右键单击项目,然后选择“属性” 。 选择“包”选项卡。...备注 如果你的项目是一个 .NET Framework 项目,请选择“应用程序”选项卡,然后选择“程序集信息” 。 从“非特定语言”或程序集非特定语言”下拉列表中选择语言 。 选择“确定”。...请参阅 NeutralResourcesLanguageAttribute .NET 应用中的资源
前者不可定制、运行缓慢、消耗资源(不过好消息是现在开源了);后者已被弃用、不受支持且基于旧版本的 Mono.Cecil。...这些需要合并的参数中,第一个参数是主程序集,而后续其他的都是待合并的程序集。区别主程序集和其他程序集的原因是输出的程序集需要有名称、版本号等等信息,而这些信息将使用主程序集中的信息。...将所有依赖合并指的是将缺少的依赖也一起作为命令行参数传入要合并的程序集中。 而另一种是增加一个参数 /lib,即添加一个被搜索的依赖程序集的目录。将这个目录指定后,则可以正确解析依赖完成合并。...而且这些依赖将成为合并后的程序集的依赖,不会合并到程序集中。...同时很早就有支持 Portable PDB 的拉取请求,但至今未合并。
最近我大幅度重构了我一个库的项目结构,使之使用最新的项目文件格式(基于 Microsoft.NET.Sdk)并使用 SourceYard 源码包来打包其中的一些公共代码。...不过,最终生成了一个新的 dll 之后却心有余悸,不知道我是否删除或者修改了某些 API,是否可能导致我原有库的使用者出现意料之外的兼容性问题。...索性发现了 JustAssembly 可以帮助我们分析程序集 API 的变化。本文将介绍如何使用 JustAssembly 来分析不同版本程序集 API 的变化。...下载和安装 JustAssembly JustAssembly 是 Telerik 开源的一款程序集分析工具。...你可以去它的官网下载并安装:Assembly Diff Tool for .NET - JustAssembly。
最近开始学习ASP.NET MVC技术,感觉跟原来的ASP.NET WebForm差异实在是太大了,看了2天的理论知识,才敢动手写一个实例程序。...我们的VS2010中默认集成了ASP.NET MVC2.0 ,本例程序就是使用它开发的,实例程序下载请到下面的下载地址: http://files.cnblogs.com/bluedoctor/MvcApplication1...为方便上传,示例程序删除了ASP.NET自带的成员数据库,对“新闻”程序的运行没有影响。...下面是本实例程序的运行截图: (列表界面) (带一个jQuery 日历控件的编辑界面) (查看详细界面) 示例程序的使用 1,首先,下载本实例程序,在VS2010中打开; 2,打开SQLSERVER.../250787.html本实例程序使用了PDF.NET 数据开发框架,新闻数据的增,删,改,查非常简单,下面是实例代码: using System; using System.Collections.Generic
如前所述,当软件上线时,可能会出错,并且代码可能会以我们未计划的方式开始执行。当我们不得不处理问题而又无法调试或确定发生了什么情况时,下我们该怎么办? ?...如果某个进程长时间使用超过90%的CPU,则我们会遇到麻烦 在本文中,我们将分析基于Windows的服务器上. net web应用程序的高CPU使用率的实际案例场景、涉及到的识别问题的过程,以及更重要的问题...CPU使用率和内存消耗是广泛讨论的主题。通常,很难确定某个特定进程应使用的资源(CPU,RAM,I / O)的正确数量以及持续的时间段。...如果单击建议,我们将开始了解应用程序存在问题的地方。我们的示例报告如下所示: ? 图片 正如我们在报告中看到的那样,有一个关于CPU使用率的模式。所有CPU使用率高的线程都与同一类相关。...这就是.NET C#语言规范关于静态类和成员的说明[7]: 与所有类类型一样,当加载引用该类的程序时,.NET Framework公共语言运行库(CLR)将加载静态类的类型信息。
深入理解Task.Run() 通过适当使用"即发即弃"(fire-and-forget)方法,你可以提高.NET Core应用程序的响应性和性能,同时确保重要的后台任务能够高效执行。...在本教程中,我们将专注于并学习如何使用Task.Run来执行后台工作。 什么是Task.Run? Task.Run将指定的工作队列化以在线程池上运行,并返回一个代表该工作的Task对象。...Core中的Task.Run允许你将工作卸载到后台线程,这可以通过释放主线程来处理其他任务,从而提高应用程序的响应性。...以下是一些可以使用Task.Run的实际用例: 实际示例 日志记录 这是一个完美的用例,每个应用程序都在进行日志记录。让我们了解如何提高性能。 假设在成功的数据库操作后,我们想要记录操作结果。....NET Core应用程序的性能和响应性。
再说回进程,官方文档上指出,系统上的每一个进程(程序)都是作为一个特定用户来运行的。 这句话代表什么呢?说明一个进程(程序)运行起来以后,与这个进程相关联的用户确定了这个进程可以访问的文件和目录。...如果创建用户时,不指定任何主组或者附属组,系统会自动创建一个和用户同名的组作为主组和附属组,如上图都为monster 当用户创建完成后,系统会在/home目录下创建一个同名用户目录,用于用户存储文件,如下...注意:实际操作中,用户的主组名为自己的同名组即可,我们一般将用户增加到不同的附属组,来增加用户的权限。 Part.4 三个重要文件 三个重要文件 (1)/etc/passwd 存放用户名信息 ?...以monster用户为例,gid未1012,组成员包含user02 (4)查询某个用户的全部信息 可以使用以下方法,查询到用户的全部信息: ? 是不是很方便呢?...Guest,来宾账户,供访问共享资源的网络用户使用,仅具有最基本权限,默认被禁用。 三个内置的用户组: Administrators,管理员组。 Users组,新建用户默认所属的组。
如果资源没有本地化,则嵌入到主程序集;如果有本地化,则嵌入到附属程序集。...对 XAML 文件进行第二轮编译,而这一次会引用同一个程序集中的类型。...CheckUid、UpdateUid、RemoveUid Target 有三个,CheckUid、UpdateUid 和 RemoveUid,分别负责主资源生成和附属资源生成。...但是我们也知道,XAML 还能引用同一个程序集中的 CLR 类型,而此时这个程序集还没有编译,XAML 编译过程并不知道可以如何使用这些类型。...但是 XAML 文件中也有可能包含对同一个程序集中的 CLR 类型的引用,然而这一编译阶段 CLR 类型还没有开始编译,因此无法提供程序集引用。
最后发现问题在于把皮肤资源都集成到了zip文件中,程序在刷新界面时会重新从zip文件中读取对应的资源,导致了界面反映卡顿。之前直接把z资源放到目录里或者把zip集成到程序内部,都是没问题的。...,开发时选择这个方法,但是实际发布程序后为了资源的保密就很少这样做了;使用zip文件也是常用的方法,但是问题就在于资源比较多时界面就有明显卡顿;直接使用资源肯定是快速的,但是这个方法就太繁琐了,需要逐个去处理每个资源...,用法见MenuDemo;使用资源的zip压缩包,这个是我最常用的,把资源压缩为zip然后集成到程序中,这样不但可以保密资源,而且不会有卡顿的现象。...);” 7.编译程序,这样就可以使用资源的zip压缩包了。 ...在使用“资源的zip压缩包”方法的前提下,如果要换肤就使用如下函数,函数的参数是新换皮肤的资源ID,比如“IDR_ZIPRES2”,函数实际就是从程序资源中找到对应的皮肤zip文件,并且调用对应的SetResourceZip
(持续整理中)Visual Studio 中 C# 代码分析规则集中每一项的含义 (stylecop ruleset) 发布于 2018-02-07 13:55...is var xxx CA1801 检查未使用的参数 如果方法中有声明的参数没有使用,则会发出此警告 CA1813 避免使用未密封的特性 自定义的 Attribute 应该是 sealed 的 CA1822...将成员标记为 static 如果方法的实现中没有任何一个地方用到了 this,那么这个方法就应该标记成静态的 CA1824 用 NeutralResourcesLanguage 标记程序集 如果程序集中包含资源...,那么应该用此特性标记程序集以便提升第一次查找资源时的性能;[assembly: NeutralResourcesLanguage("zh-CHS", UltimateResourceFallbackLocation.Satellite...)] 表示如果当前系统处于简体中文环境,那么就去此程序集查找资源,否则就去附属程序集查找;如果资源一定在此程序集,则指定为 MainAssembly 代码质量问题 这部分的代码分析来自于 Microsoft.CodeAnalysis.FxCopAnalyzers
领取专属 10元无门槛券
手把手带您无忧上云