文章目录
前言
需要写一个小程序来监控桌面的情况,所以想到用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 或更高版本: