C#生成exe并用process运行


前言

需要写一个小程序来监控桌面的情况,所以想到用cmd来运行exe监控

一、生成exe

1.C#项目生成一个独立的exe可执行文件

假设你已经在 Visual Studio 中打开了项目,以下是发布自包含版本的步骤:

1.安装Costura.Fody

在这里插入图片描述
在这里插入图片描述

2.编译项目
1)点击【调试】-【开始调试】,也可以直接按F5

在这里插入图片描述

2)待运行完成,将窗口关闭。选择我们的解决方案,点击鼠标右键,在弹出的选项中点击【在文件资源管理器中打开文件夹】

在这里插入图片描述

3)找到项目文件夹中的【bin】-【Debug】文件夹下的exe文件。将这个exe文件发给其他人,可以发现只需要这一个文件就可以运行我们的程序

2.一些问题

我运行遇到报错:

System.PlatformNotSupportedException: System.Management currently is only supported for Windows desktop applications.
   at System.Management.ManagementObjectSearcher..ctor(String queryString)
   at FlaUI.Core.WindowsAPI.WindowsApiTools.GetMainModuleFilepath(Process process)
   at FlaUI.Core.Application.Attach(Process process)

遇到的 System.PlatformNotSupportedException 错误是因为 System.Management 命名空间中的类仅支持在传统的 Windows 桌面应用程序(如基于 .NET Framework 的应用程序)中使用,而不是在 .NET Core 或 .NET 5+ 中使用。

FlaUI 库使用 System.Management 来获取某些系统信息,例如进程的主模块文件路径。在 .NET Core 或 .NET 5+ 中,System.Management 不可用。

解决这个问题的方法有两种:

使用 .NET Framework:你可以将项目迁移到 .NET Framework。
使用替代方法:你可以在 .NET Core 或 .NET 5+ 中使用其他方法来获取相同的信息。

1. 使用 .NET Framework

如果你可以接受使用 .NET Framework,你可以将项目转换为 .NET Framework 项目。这通常涉及更改项目文件中的 TargetFramework 元素。

修改项目文件

打开你的 .csproj 文件,将 TargetFramework 更改为 .NET Framework 4.7.2 或更高版本:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值