当前位置: 首页 > news >正文

dotnet4.0编译问题

因为最近在写cobaltstrike的execute-assembly内存加载的c#项目
用visual studio2022编译,最低net只能用6.0版本的,并且execute-assembly不支持
在这里插入图片描述
我想使用4.x版本进行编译,因为visual studio不支持,那么使用命令行进行编译
因为要用到MSBuild.exe,我直接选择低版本的
在这里插入图片描述
用x64或者另一个都可以,只要ConsoleApp2.csproj写上对应属性就好

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"><PropertyGroup><OutputType>Exe</OutputType><TargetFrameworkVersion>v4.8</TargetFrameworkVersion> <!-- .NET Framework 4.8 --><PlatformTarget>x64</PlatformTarget> <!-- 目标处理器架构设置为 x64 --><RootNamespace>ConsoleApp2</RootNamespace><AssemblyName>ConsoleApp2</AssemblyName><Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> <!-- 默认配置为 Release --><Platform Condition=" '$(Platform)' == '' ">x64</Platform> <!-- 默认平台为 x64 --><OutputPath>bin\$(Configuration)\</OutputPath> <!-- 输出路径 --></PropertyGroup><ItemGroup><Reference Include="System" /><!-- 添加其他引用 --></ItemGroup><ItemGroup><Compile Include="Program.cs" /><!-- 添加其他源文件 --></ItemGroup><Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

我的项目代码为

using System;namespace HelloWorldApp
{class Program{static void Main(string[] args){string name;if (args.Length > 0){name = args[0];Console.WriteLine($"你好, {name}!");}else{Console.WriteLine("没有提供命令行参数。请输入您的名字:");}    }}
}

但是编译会报错
在这里插入图片描述

说明字符串插值不能使用 , , 是在 C# 6.0 引入的,而 .NET Framework 4.0 默认使用的 C# 编译器版本是 4.0,它不支持这些特性
所以需要改成+拼接参数,如下

using System;namespace ConsoleApp2
{class Program{static void Main(string[] args){// 检查是否传入了命令行参数if (args.Length > 0){// 如果传入了参数,使用第一个参数string name = args[0];Console.WriteLine("Hello, " + name + "!");}else{// 如果没有传入参数,使用默认值string defaultName = "world";Console.WriteLine("Hello, " + defaultName + "!");}}}
}

这样就可以成功生成了
在这里插入图片描述
在cobaltstrike中试试效果
在这里插入图片描述
可以看到成功达到效果,那么接下来看看完成一些功能
https://github.com/breakid/SharpUtils有一些功能,我来试试env的
在这里插入图片描述
可以看到成功显示出来env

http://www.lryc.cn/news/445523.html

相关文章:

  • 研一奖学金计划2024/9/23有感
  • html知识点框架
  • SpringBoot的应用
  • Spring源码学习:SpringMVC(3)mvcannotation-driven标签解析【RequestMappingHandlerMapping生成】
  • 2024 Redis 全部
  • [SDX35+WCN6856]SDX35 + WCN6856 WiFi可以up起来之后无法扫描到SSID
  • VisualStudio如何卸载Resharper插件?
  • Unity Debug时出现请选择unity实例
  • 国庆出行新宠:南卡Pro5骨传导耳机,让旅途不再孤单
  • 2024.09.18 leetcode 每日一题
  • 快递物流短信API接口代码
  • 人工智能-机器学习-深度学习-分类与算法梳理
  • Xinference:深度学习模型推理与优化指南
  • Windows 2003系统的防护技巧,禁止IPC$空连接
  • Kubernetes 深入浅出系列 | 容器剖析之容器基本实现原理
  • 【学习笔记】TLS/SSL握手
  • ESP32-TFT_eSPI.h文件的使用心得(包含画图相关函数)
  • vite分目录打包以及去掉默认的.gz 文件
  • Tensorflow 2.0 cnn训练cifar10 准确率只有0.1 [已解决]
  • 828华为云征文 | 在华为云上通过Docker容器部署Elasticsearch并进行性能评测
  • 生态位模型降重创新专题系列【2025
  • LeetCode234. 回文链表(2024秋季每日一题 26)
  • 项目(石头剪刀布游戏双循环)
  • Linux 进程3
  • R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
  • shell linux cut 切割字符串
  • golang学习笔记31——golang 怎么实现枚举
  • fastadmin本地安装插件提示”请从官网渠道下载插件压缩包(code:2)(code:1)“
  • STM32基础学习笔记-Timer定时器面试基础题5
  • CSS06-元素显示模式、单行文字垂直居中