如何在不使用IDE的情况下更改C#程序的图标?

如何在不使用IDE的情况下更改C#程序的图标?,c#,powershell,msbuild,icons,csc,C#,Powershell,Msbuild,Icons,Csc,我有一个C#文件(Source code.cs),我使用Microsoft的编译器用PowerShell文件(compile.ps1)编译: C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -out:"Program.exe" -target:winexe "Source code.cs" 它创建可执行的程序.exe 如何更改其图标?运行程序时出现在任务栏中的可执行文件图标。我在同一个文件夹中有Icon.ico 我发现问同一个问题时,

我有一个C#文件(
Source code.cs
),我使用Microsoft的编译器用PowerShell文件(
compile.ps1
)编译:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -out:"Program.exe" -target:winexe "Source code.cs"
它创建可执行的
程序.exe

如何更改其图标?运行程序时出现在任务栏中的可执行文件图标。我在同一个文件夹中有
Icon.ico

我发现问同一个问题时,用的是一个我不太明白的答案


请注意,我要问的是如何在没有任何IDE的情况下实现这一点。

您可以使用“资源黑客”。资源黑客是32位和64位Windows应用程序的资源编辑器。它既是一个资源编译器(用于.rc文件),又是一个反编译器-支持查看和编辑可执行文件(.exe;*.dll;.scr;等)和编译资源库(.res,*.mui)中的资源。虽然Resource Hacker主要是一个GUI应用程序,但它也提供了许多从命令行编译和反编译资源的选项。

经过一段时间的尝试和错误,我设法使其与
设置.csproj
文件一起工作,如下所示:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <Target Name="Compile">
    <Csc OutputAssembly="Program.exe" Sources="Source code.cs" TargetType="WinExe" Win32Icon="Icon.ico"/>
  </Target>
</Project>
MSBuild.exe

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe "Settings.csproj"
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe "Settings.csproj"
这在我需要更改其他项目属性的情况下是很好的,但目前,我从运行上述命令的控制台输出中发现了一个更简单的解决方案,即我可以简单地使用:


答案在您发布的链接中:您可以在.csproj文件中创建另一个节点,例如,
myicon.ico
该.ico文件应与.csproj.cs等位于同一文件夹中files@Diado我试过了。我创建了一个项目文件
Settings.csproj
,并尝试将其添加到
末尾的编译中。。。“Source code.cs”“Settings.csproj”
但它会抛出错误
CS0116
。据我所知,这是一个可以更改任何可执行文件图标的应用程序,对吗?如果是这样的话,那么它可能是一个解决方案,但我将首先等待,看看是否有一种方法可以在没有外部工具的情况下以编程方式完成它。这是一个修改DLL和EXE@user7393973“没有工具”是不可能的。要么你得到一个,要么你自己得到一个。您希望如何在不使用软件的情况下修改文件?那是不可能的。如果你说“没有IDE”,你会说“我只想使用命令行工具”。是吗?@Holger我想我说得不够清楚,这造成了一点误解。我要找的不是在将代码编译成可执行程序后如何更改图标,而是在编译之前如何更改图标。很抱歉造成混淆。这是一个很好的解决方案,不必使用第三方软件作为资源黑客。只是一个旁注。。。“Program.exe”和“Source code.cs”不需要位于引号之间,也不需要完整的netframework路径。重要事项:
exe
cs
ico
文件必须都位于同一目录中,而不一定位于驱动器c中。在Visual Studio中,转到工具>命令行>DOS提示符。到达后,键入:
csc-out:myfilename.exe-target:winexe-win32icon:myiconname.ico myVisualStudiofilename.cs
@LuizVaughan谢谢。IIRC,我是通过Windows PowerShell和Windows附带的编译器编译该文件的,以查看我可以做什么而不需要安装任何东西,例如Visual Studio。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe -out:"Program.exe" -target:winexe -win32icon:Icon.ico "Source code.cs"