如何更改由Visual Studio生成的可执行文件的输出名称


77

我想更改可执行文件的名称。假设我的项目名称为“ SampleDemo”,它将创建可执行文件,例如“ SampleDemo.exe”,但我想将其重命名为“ Demo.exe”



1
@skrrgwasme-不太正确,Kiran在询问如何更改VS项目的输出名称。
2015年

2
如果像我一样,您想要更改输出文件名而不更改程序集名称,请参阅stackoverflow.com/a/44188341
jnm2

Answers:


120
  1. 在Visual Studio中打开项目属性(在解决方案资源管理器中右键单击项目,然后从弹出菜单中选择“属性”)
  2. 在属性窗口的“应用程序”选项卡上,更改“程序集名称”

@KiranDesai我想您正在编辑AssemblyInfo.cs文件。您需要编辑项目属性。我已经在回答中澄清了这一点。
罗斯·麦克纳布

感谢您的澄清,您的解决方案可以正常工作。
基兰·德赛

1
在构建前或构建后事件期间,是否可以基于命令行参数更改Exe文件名?
Pabitra Dash

1
如果像我一样,您想要更改输出文件名而不更改程序集名称,请参阅stackoverflow.com/a/44188341
jnm2

23

如果像我一样,您想在更改程序集名称的情况下更改输出文件名,则将其放在.csproj的main中<PropertyGroup>

    <TargetName>Desired output name without extension</TargetName>

3
这就像一个魅力。除非现在调试过程中找不到可执行文件..
Boris Callens

@BorisCallens Huh,使用新的csproj调试,如果您以.NET Framework为目标,则工作正常;如果以.NET Core为目标,则无法工作。猜猜我们需要提出一个问题。使用旧的csproj(仅.NET Framework)也不起作用。您使用哪种csproj?
jnm2

新的csproj和.NET Core的问题:github.com/dotnet/project-system/issues/2556
jnm2 '17

旧的csproj,.net 4.6.1。将检查问题。
鲍里斯·卡伦斯

1
更正:该问题也适用于旧的csproj。
jnm2

6

通过MsBuild:

<Target Name="Rename" AfterTargets="AfterBuild">
    <Move SourceFiles="$(OUTDIR)\Application1.exe" DestinationFiles="$(OUTDIR)\ApplicationNew.exe" />
    <Message Text="Renamed executable file." Importance="high" />
</Target>

更改ApplicationName不是最好的方法。例如,如果您使用wpf资源,则完整路径包含ApplicationName,重命名可执行文件后,您需要在out应用程序中更改所有完整路径。

<ResourceDictionary Source="pack://application:,,,/Application1;component/Themes/CustomStyles.xaml"/>

在这种情况下,我使用了msbuild。


很好,因为如果您将Move替换为Copy,调试仍然可以正常工作(从VS2017开始,其他答案的问题对我而言尚未解决)
Kolichikov

0

双击“我的项目”

点击“打包清单...”

点击“应用程序”

在“显示名称”下,填写您要调用exe的名称。

在您的情况下为:“ Demo”,因为您希望项目名称“ SampleDemo”具有名为“ Demo”的输出exe。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.