在创建控制台应用程序时编译.exe



我遇到了一些问题,我不确定这是由Visual Studio引起的,还是应用程序中的某些内容。

我编写了一个简单的控制台应用程序来停止和启动服务。当我去调试/发布应用程序时,它会将应用程序编译成.dll。

我按照在谷歌搜索时找到的一些说明来获取.exe,但是当我这样做时,与脚本(60MB)相比,我的依赖项输出文件夹非常庞大。

我已经多次制作控制台应用程序,通常.exe存储在调试/发布文件夹中并且可以正常工作。我不确定这次有什么不同。

我想要的只是一个简单的.exe

构建的输出:

1>------ 构建开始:项目:修复任意连接,配置:调试 任何 CPU ------ 1>FixAnyConnect ->C:\Users\jeh\Desktop\Projects\FixAnyConnect\FixAnyConnect\bin\Debugetcoreapp2.1\FixAnyConnect.dll =

========== 构建:1 个成功,0 个失败,0 个最新,0 个跳过 ==========

完整代码:

using System;
using System.Diagnostics;
using System.ServiceProcess;

namespace FixAnyConnect
{
class Program
{
static void Main(string[] args)
{
string[] serviceList = { "Cisco AnyConnect Network Access Manager", "Cisco AnyConnect Network Access Manager Logon Module", "Cisco AnyConnect Secure Mobility Agent" };
//string[] serviceList = { "Print Spooler", "Realtek Audio Service", "Themes" };
Console.WriteLine("Restarting AnyConnect...");
foreach (string serviceName in serviceList)
{
ServiceController service = new ServiceController(serviceName, ".");
Console.WriteLine("Stopping " + serviceName);
try
{
service.Stop();
Console.WriteLine(serviceName + " Stopped");
} 
catch
{
}
Console.WriteLine("Sleeping for 5 seconds");
System.Threading.Thread.Sleep(5000);
Console.WriteLine("Starting " + serviceName);
try
{
service.Start();
Console.WriteLine(serviceName + " Started");
}
catch (Exception ex)
{
Console.WriteLine("Failed to start service");
Console.WriteLine(ex.Message);
Console.WriteLine("Rerun script - if same error occurs, please reboot system");
Console.WriteLine("Press any key to close");
Console.ReadKey();
Environment.Exit(0);
}
Console.WriteLine("================");
}
Console.WriteLine("Starting AnyConnect Software");
try
{
Process.Start("C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Clientvpnui.exe");
}
catch (Exception ex)
{
Console.WriteLine("Failed to start Any Connect");
Console.WriteLine(ex.Message);
Console.WriteLine("Rerun script - if same error occurs, please reboot system");
Console.WriteLine("Press any key to close");
Console.ReadKey();
Environment.Exit(0);
}
Console.WriteLine("AnyConnect has been sucessfuly restarted");
Console.WriteLine("Press any key to close");
Console.ReadKey();
}
}
}

您正在制作一个 .NET Core 应用程序,而不是一个原始的仅限 Windows 的 .NET Framework 应用程序。 虽然 .NET Framework 应用程序可以假定操作系统提供了所有必要的框架 DLL 和运行时组件(因为您只能在 Windows 上运行,并且 .NET Framework 是 Windows 功能),但 .NET Core 具有多种部署策略来支持跨平台和并行安装。

因此,请切换到 .NET Framework(仅适用于 Windows),或者将 .NET Core 应用发布为依赖于框架的部署。

这可能是您正在寻找的内容。有一种方法可以将其编译为可执行文件。

最新更新