这里讲的是OpenExpressApp的部署方案。主要使用的是ClickOnce作为实施方案来实现:智能部署和智能客户端。不过,这里的使用方式跟以往的不太一样…… 部署概述 Open
dotnet publish - 将应用程序及其依赖项发布到文件夹以部署到托管系统。
dotnet build [<PROJECT>|<SOLUTION>] [-a|--arch <ARCHITECTURE>]
在 MSBuild 中有一些特殊字符,如 $ @ % ' 等,本文介绍他们的含义,如何使用他们,以及你真的需要这些字符的时候如何编写他们。
Clickonce无痛自动更新是我最喜欢使用VSTO开发并Clickonce部署的特性之一,但这个自动更新,通常会更新整个程序文件,包含所有的引用dll和一些资源文件等。
📷 简介 在各种钓鱼、挖矿、勒索、组建僵尸网络、基础渗透、后渗透过程当中,攻击者都会通过一些方法去下载执行恶意代码并执行完成攻击操作,比如前段时间通过Office DDE执行powershell的,利用宏执行VBS的,绕过权限限制完成危险命令执行的等等,都需要用到文件下载/上传姿势,一般说按照途径可以分为: 通过HTTP、FTP URL进行传输类 通过UNC进行传输类 通过磁盘写入类 而payload执行则具体可以分为有文件类和无文件类,具体分的话就是内存执行、本地缓存、磁盘文件下面我们
简介 在各种钓鱼、挖矿、勒索、组建僵尸网络、基础渗透、后渗透过程当中,攻击者都会通过一些方法去下载执行恶意代码并执行完成攻击操作,比如前段时间通过Office DDE执行powershell的,利用宏执行VBS的,绕过权限限制完成危险命令执行的等等,都需要用到文件下载/上传姿势,一般说按照途径可以分为: 通过HTTP、FTP URL进行传输类 通过UNC进行传输类 通过磁盘写入类 而payload执行则具体可以分为有文件类和无文件类,具体分的话就是内存执行、本地缓存、磁盘文件 通过HTTP下载
发布于 2018-05-12 01:09 更新于 2018-09-01 00:16
发布于 2018-05-11 16:04 更新于 2018-09-01 00:07
一、前言 MSBuild是一个既熟悉又陌生的名字,Visual Studio的项目加载和构建均通过MSBuild来实现。VS中右键打开项目菜
ClickOnce智能客户端,是微软提供比较早的一项技术,用于实现WinForm开发的应用程序能够自动更新,省去给每台客户端升级带来的困扰。 从网上的贴子里看,有的说好用,有的说不好用。客观的说,微软的东西其实都很好用的,不好用的原因是我们不会用。微软技术是上手容易,精通难,需要不断的摸索和研究,才能灵活运用。当然,我不是微软的水军,但我是用Net开发。。。好了,废话不多说,下面介绍下这个技术。 在网上找了下相关资料,发现这两篇介绍的很全面。不懂的童鞋可以详细阅读,我也不用粘贴复制,这样太没技术
1、卸载可以临时解除项目与解决方案生成的关联;移除可以解除项与解决方案、项目或文件夹的关联但 不移除其物理文件,移除没有卸载那么彻底,但他们都不会移除物理文件,只会删除关联 。 2、 解决方案 { 项目1{ 属性; 引用; 类; } 项目2{ 属性; 引用; 类; } 。。。。。。。。。。。。 项目n{ 属性; 引用; 类; } } 3、 csproj文件的作用
以上就成功部署了自己的NuGet服务器了。关于.nupkg文件其实就是程序的安装包压缩文件,它包含了程序包的版本信息,dll及相关的外部依赖,NuGet安装包时会进行自动解压。因此上传至NuGet服务器Packages目录的只需要.nupkg文件。
发布于 2018-05-14 07:46 更新于 2018-07-28 09:52
发布于 2018-05-10 00:13 更新于 2018-08-12 08:11
本文适用于: ✔️ .NET Core 2.1 SDK 及更高版本 .NET 命令行接口 (CLI) 工具是用于开发、生成、运行和发布 .NET 应用程序的跨平台工具链。 .NET CLI 附带了 .NET SDK。 若要了解如何安装 .NET SDK,请参阅安装 .NET Core。 CLI 命令 默认安装以下命令: 基本命令 new restore build publish run test vstest pack migrate clean sln help store 项目修改命令 add package add reference remove package remove reference list reference 高级命令 nuget delete nuget locals nuget push msbuild dotnet install script 工具管理命令 tool install tool list tool update tool restore 自 .NET Core SDK 3.0 起可用。 tool run 自 .NET Core SDK 3.0 起可用。 tool uninstall 工具是控制台应用程序,它们从 NuGet 包中安装并从命令提示符处进行调用。 你可自行编写工具,也可安装由第三方编写的工具。 工具也称为全局工具、工具路径工具和本地工具。 有关详细信息,请参阅 .NET 工具概述。 命令结构 CLI 命令结构包含驱动程序(“dotnet”)和命令,还可能包含命令参数和选项。 在大部分 CLI 操作中可看到此模式,例如创建新控制台应用并从命令行运行该应用,因为从名为 my_app 的目录中执行时,显示以下命令: dotnet new console dotnet build --output ./build_output dotnet ./build_output/my_app.dll 驱动程序 驱动程序名为 dotnet,并具有两项职责,即运行依赖于框架的应用或执行命令。 若要运行依赖于框架的应用,请在驱动程序后指定应用,例如,dotnet /path/to/my_app.dll。 从应用的 DLL 驻留的文件夹执行命令时,只需执行 dotnet my_app.dll 即可。 如果要使用特定版本的 .NET 运行时,请使用 --fx-version <VERSION> 选项(请参阅 dotnet 命令参考)。 为驱动程序提供命令时,dotnet.exe 启动 CLI 命令执行过程。 例如: dotnet build 首先,驱动程序确定要使用的 SDK 版本。 如果没有 global.json 文件,则使用可用的最新版本 SDK。 这有可能是预览版或稳定版,具体取决于计算机上的最新版本。 确定 SDK 版本后,它便会执行命令。 命令 由命令执行操作。 例如,dotnet build 生成代码。 dotnet publish 发布代码。 使用 dotnet {command} 约定将命令作为控制台应用程序实现。 自变量 在命令行上传递的参数是被调用的命令的参数。 例如,执行 dotnet publish my_app.csproj 时,my_app.csproj 参数指示要发布的项目,并被传递到 publish 命令。 选项 在命令行上传递的选项是被调用的命令的选项。 例如,执行 dotnet publish --output /build_output 时,--output 选项及其值被传递到 publish 命令。 请参阅 dotnet/sdk GitHub 存储库 .NET 安装指南
MSBuild基本概念(续) 在上一篇简单的介绍了下MSBuild中的四个基本块,每块介绍比较单薄,在这里对在大多数的项目模版生成的*.*proj文件中比较常见一些用法和概念做些补充。主要有一下几方面: MSBuild特殊字符:MSBuild保留的一些字符,以及XML中的特殊字符处理。 MSBuild条件: Condition特性,作用类似于C#的if。 MSBuild属性: 使用环境变量、保留属性、全局属性。 MSBuild项: 元数据、项转换。 MSBuild任务: ITask接口、UsingTask[
你是否好奇 Visual Studio 2019 中的 .NET Core SDK 预览版开关是全局生效的,那个全局的配置在哪里呢?
本文整理我和 林德熙 学习的 dotnet 编译知识、Roslyn 源码分析知识,NuGet 知识。通过阅读本文可以从零散的碎片化博客中得到从零开始学习的轨迹。
最近入职了一家新公司,公司各个方面都让我非常的满意,我也怀着紧张与兴奋的心情入职后,在第一天接到了领导给我的第一个任务——把整个项目的依赖引用重新整理并实施项目的CI/CD。
虽然大多数人的注意力都集中在.NET Core上,但与原来的.NET Framework相关的工作还在继续。.NET Framework 4.6.2正式版已于近日发布,其重点是安全和WinForms/WPF/ASP.NET/WCF相关的特性, 微软的Stacey Haffner介绍了有关该版本的详细信息。他还提供了一个4.6.2版本的完整变化列表以及API变化比较。微软已经提供了Web安装包、离线安装包和开发者包。那些运行Windows 10并进行了周年更新的开发人员,其系统上已经安装了4.6.2版本。
我们有多种工具可以将程序集合并成为一个。打包成一个程序集可以避免分发程序的时候带上一堆依赖而出问题。
在使用 NuGet 包来分发源代码时,如果目标项目是 WPF 项目,那么会有一大堆的问题。
通过sip劫持对恶意代码签名获得系统信任https://github.com/secretsquirrel/SigThief
dotnet run [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>]
dotnet [--version] [--info] [--list-runtimes] [--list-sdks]
.NET 是一个免费的开源开发平台,用于构建多种应用,例如: Web 应用程序、Web API 和微服务 云中的无服务器功能 云原生应用 移动应用 桌面应用程序 视窗 WPF Windows 窗体 通用 Windows 平台 (UWP) 游戏 物联网 (IoT) 机器学习 控制台应用程序 视窗服务 使用类库在不同的应用程序和应用程序类型之间共享功能。 使用 .NET,无论您正在构建哪种类型的应用程序,您的代码和项目文件的外观和感觉都相同。您可以使用每个应用程序访问相同的运行时、API 和语言功能。 跨平台 您可以为许多操作系统创建 .NET 应用程序,包括: 视窗 苹果系统 Linux 安卓 IOS 操作系统 手表操作系统 支持的处理器架构包括: x64 x86 ARM32 ARM64 .NET 允许您使用特定于平台的功能,例如操作系统 API。示例是 Windows 上的 Windows 窗体和 WPF,以及从 Xamarin 到每个移动平台的本机绑定。 有关更多信息,请参阅支持的操作系统生命周期策略和.NET RID 目录。 开源 .NET 是开源的,使用MIT 和 Apache 2 许可证。.NET 是.NET 基金会的一个项目。 有关更多信息,请参阅GitHub.com 上的项目存储库列表。 支持 Microsoft 在 Windows、macOS 和 Linux 上支持 .NET。它会在每个月的第二个星期二定期更新以确保安全性和质量。 Microsoft 的 .NET 二进制发行版在 Azure 中由 Microsoft 维护的服务器上构建和测试,并遵循 Microsoft 工程和安全实践。 Red Hat在 Red Hat Enterprise Linux (RHEL) 上支持 .NET。Red Hat 和 Microsoft 合作确保 .NET Core 在 RHEL 上运行良好。 Tizen 支持Tizen 平台上的.NET。 有关详细信息,请参阅.NET Core 和 .NET 5 的版本和支持。 工具和生产力 .NET 为您提供了多种语言、集成开发环境 (IDE) 和其他工具的选择。 编程语言 .NET 支持三种编程语言: C# C#(发音为“See Sharp”)是一种现代的、面向对象的、类型安全的编程语言。C# 起源于 C 语言家族,C、C++、Java 和 JavaScript 程序员很快就会熟悉 C#。 F# F# 语言支持函数式、面向对象和命令式编程模型。 视觉基础 在 .NET 语言中,Visual Basic 的语法是最接近普通人类语言的,这使得它更容易学习。与微软正在积极开发新功能的 C# 和 F# 不同,Visual Basic 语言是稳定的。Web 应用不支持 Visual Basic,但 Web API 支持它。 以下是 .NET 语言支持的一些功能: 类型安全 类型推断 - C#、F#、Visual Basic 通用类型 代表 拉姆达 活动 例外 属性 异步代码 并行编程 代码分析器 集成开发环境 .NET 的集成开发环境包括: 视觉工作室 仅在 Windows 上运行。具有广泛的内置功能,旨在与 .NET 一起使用。社区版对学生、开源贡献者和个人免费。 视觉工作室代码 在 Windows、macOS 和 Linux 上运行。免费和开源。扩展可用于使用 .NET 语言。 适用于 Mac 的 Visual Studio 仅在 macOS 上运行。用于为 iOS、Android 和 Web 开发 .NET 应用程序和游戏。 GitHub 代码空间 在线 Visual Studio Code 环境,目前处于测试阶段。 SDK 和运行时 在.NET SDK是一套库和工具的开发和运行.NET应用程序的。 当你下载.NET,您可以选择SDK或运行时,如.NET运行时或ASP.NET核心运行时。在要准备运行 .NET 应用程序的计算机上安装运行时。在要用于开发的机器上安装 SDK。当您下载 SDK 时,您会自动获得运行时。 SDK 下载包括以下组件: 在.NET CLI。可用于本地开发和持续集成脚本的命令行工具。 该dotnet 驱动程序。运行依赖于框架的应用程序的 CLI 命令。 在罗斯林和F#编程语言编译器。 该MSBuild的生成引擎。 在.NET运行库。提供类型系统、程序集加载、垃圾收集器、本地互操作和其他基本服务。 运行时库。提供原始数据类型和基本实用程序。 ASP.NET Core 运行时。为连接互联网的应用程序提供基本服务,例如 Web 应用程序、IoT 应用程序和移动后端。 桌面运行时。为 Windows 桌面应用程序提供基本服务,包括 Windows 窗体和 WPF。 运行时下载包括以下组件: (可选)
今天介绍使用ClickOnce制作软件安装包,首先我们先了解什么是ClickOne。
最近我把很多项目都使用了 VisualStudio 2017 新项目格式,在使用的时候发现一些比较好用的功能。 本文告诉大家如何使用 VisualStudio 2017 项目格式自动生成版本号
发布于 2018-01-15 16:04 更新于 2018-09-07 04:40
这段时间公司新做了一个支付系统,里面有N个后台服务,每次有更新修改,拷贝打包发布包“不亦乐乎”。。。于是我想要不要自己定制个打包插件。
dotnet msbuild - 生成项目及其所有依赖项。 注意:如果有多个解决方案或项目文件,可能需要指定一个。
近期看了一篇不错的横向移动的文章,觉得不错就简单翻译了一下(谷歌翻译哈哈哈哈!) 原文地址:https://posts.specterops.io/offensive-lateral-movement-1744ae62b14f
我之前写过一些改变 MSBuild 编译过程的一些博客,包括利用 Microsoft.NET.Sdk 中各种自带的 Task 来执行各种各样的编译任务。更复杂的任务难以直接利用自带的 Task 实现,需要自己写 Task。
发布于 2018-04-12 13:03 更新于 2018-08-29 01:36
2020年12月,SolarWinds 攻击事件引发全球的关注(https://us-cert.cisa.gov/ncas/alerts/aa20-352a),攻击团队在 2020年上旬通过对 SolarWinds Orion 产品实现供应链攻击,导致诸多厂商被攻击,造成了不可估量的损失。这种国家间的 APT 攻击包含了大量的技术细节,其中供应链攻击的实现,也就是 SUNBURST 后门植入这一块引起了我极大的兴趣。
横向移动是从一个受感染的宿主移动到另一个宿主的过程。渗透测试人员和红队人员通常通过执行 powershell.exe 在远程主机上运行 base64 编码命令来完成此操作,这将返回一个信标。问题在于攻击性 PowerShell 不再是一个新概念,即使是中等成熟的商店也会检测到它并迅速关闭它,或者任何半体面的 AV 产品都会在运行恶意命令之前将其杀死。横向移动的困难在于具有良好的操作安全性 (OpSec),这意味着生成尽可能少的日志,或者生成看起来正常的日志,即隐藏在视线范围内以避免被发现。这篇博文的目的不仅是展示技术,但要显示幕后发生的事情以及与之相关的任何高级指标。我将在这篇文章中引用一些 Cobalt Strike 语法,因为它是我们主要用于 C2 的语法,但是 Cobalt Strike 的内置横向移动技术是相当嘈杂,对 OpSec 不太友好。另外,我知道不是每个人都有 Cobalt Strike,所以在大多数示例中也引用了 Meterpreter,但这些技术是通用的。
为啥做这个呢,因为要将公司内部的老的.NET程序所引用的DLL进行统一管理。这里服务端使用了一个叫做NuGetServer(官网:NuGet Server)的开源工具,部署在内部的Web服务器上。
本文告诉大家如何使用 msbuild 的 ProduceOnlyReferenceAssembly 功能,将某个程序集里面仅导出其中的公开成员定义,而不包含具体的实现的方法
在昨晚的自动更新视频中,其中addins加载项的自动更新未能实现,其中原因为我的开发机和最终测试机是同一台机器,可能在文档级别上不受影响,文档级别的插件它最终还是会去网站上加载最新的dll文件,但addins加载项插件貌似它识别的是我本机的地址去加载dll文件,我重新打开Excel时,它会识别成在我本机的地址上重新加载,如下图所示,我们看到它从我本机去加载,因已经安装过了,不能同一个插件重复安装,所以就提示安装出错了
Updater application block 2.1使用和扩展 概述 Updater application block简称UAB,是Microsoft patterns & practices(模式&实践组)早期开发的一个自动更新的组件,在Click-Once(.net 2.0)之前发布的,所以最新的版本也到2.0号就就停止更新了。 UAB使用了"推模式"的自动更新,在无需用户的干预下发布新版本的更新; 应用场景 保持应用程序总是最新版本 用户可以使用多个插件 保持数据文件总是最新版本
在使用新的项目格式,可以使用 Target 添加项目,但是有一些项目需要在合适的时候添加,如果添加早了,那么会让用户看到这些文件,如果添加的时间是在引用编译之后,那么文件将无法进行编译。
在本章中,将会介绍在 Windows Jenkins 上,编译 .NET Core、.NET Framework 项目,以及远程部署到 IIS 中。
.NET Core CLI(命令行界面)是一个新的跨平台工具,用于创建,还原程序包,构建,运行和发布ASP.NET Core应用程序。适用于任何类型的Web应用程序的.NET Core CLI命令使用进程外托管,即它使用Kestrel服务器运行该应用程序。
Visual Studio中对项目所做的配置,均可在该文件中体现出来。同样,Visual Studio也是根据该文件中的内容来加载项目的。抛开Visual Studio的其它功能,可以将其看作是.csproj文件的图形管理工具。
本教程展示了如何创建自定义的 AssemblyLoadContext 来加载插件。AssemblyDependencyResolver 用于解析插件的依赖项。该教程正确地将插件依赖项与主机应用程序隔离开来。将了解如何执行以下操作:
领取专属 10元无门槛券
手把手带您无忧上云