So ändern Sie den Ausgabenamen einer von Visual Studio erstellten ausführbaren Datei

76

Ich möchte den Namen der ausführbaren Datei ändern. Angenommen, mein Projektname lautet "SampleDemo". Es wird eine ausführbare Datei wie "SampleDemo.exe" erstellt, aber ich möchte sie in "Demo.exe" umbenennen.

Kiran Desai
quelle
1
@skrrgwasme - Nicht ganz, Kiran fragt, wie der Name der Ausgabe eines VS-Projekts geändert werden soll.
4444
2
Wenn Sie wie ich den Namen der Ausgabedatei ändern möchten, ohne den Namen der Assembly zu ändern , lesen Sie stackoverflow.com/a/44188341 .
jnm2

Antworten:

120
  1. Öffnen Sie die Projekteigenschaften in Visual Studio (klicken Sie mit der rechten Maustaste auf Projekt im Projektmappen-Explorer und wählen Sie "Eigenschaften" aus dem Einblendmenü).
  2. Ändern Sie auf der Registerkarte "Anwendung" des Eigenschaftenfensters den "Baugruppennamen".
Ross McNab
quelle
@KiranDesai Ich denke, Sie bearbeiten die Datei AssemblyInfo.cs. Sie müssen stattdessen die Projekteigenschaften bearbeiten. Ich habe dies in meiner Antwort klargestellt.
Ross McNab
Vielen Dank für die Klarstellung, Ihre Lösung funktioniert ordnungsgemäß.
Kiran Desai
1
Kann ich den Namen der Exe-Datei basierend auf Befehlszeilenargumenten während Ereignissen vor oder nach dem Build ändern?
Pabitra Dash
1
Wenn Sie wie ich den Namen der Ausgabedatei ändern möchten, ohne den Namen der Assembly zu ändern , lesen Sie stackoverflow.com/a/44188341 .
jnm2
22

Wenn Sie wie ich den Namen der Ausgabedatei ändern möchten, ohne den Namen der Assembly zu ändern , fügen Sie dies wie folgt in die Hauptdatei Ihrer .csproj ein <PropertyGroup>:

    <TargetName>Desired output name without extension</TargetName>
jnm2
quelle
3
das funktionierte wie ein Zauber. Außer jetzt kann der Debug-Prozess die ausführbare Datei nicht mehr finden.
Boris Callens
@BorisCallens Huh, mit neuem csproj-Debugging funktioniert es gut, wenn Sie auf .NET Framework abzielen, und nicht, wenn Sie auf .NET Core abzielen. Ich denke, wir müssen ein Problem ansprechen. Mit altem csproj (das nur .NET Framework ist) funktioniert es auch nicht. Welche Art von Csproj verwenden Sie?
jnm2
Problem für neue csproj und .NET Core: github.com/dotnet/project-system/issues/2556
jnm2
Old csproj, .net 4.6.1. Wird das Problem überprüfen.
Boris Callens
1
Korrektur: Problem ist auch für alte csproj.
jnm2
6

Von MsBuild:

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

Das Ändern des Anwendungsnamens ist nicht der beste Weg. Wenn Sie beispielsweise wpf-Ressourcen verwendet haben, enthält der vollständige Pfad ApplicationName. Nach dem Umbenennen der ausführbaren Datei müssen Sie alle vollständigen Pfade in unserer Anwendung ändern

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

In dieser Situation habe ich msbuild verwendet.

Andrey Aktanorovich
quelle
Das ist schön, denn wenn Sie Move durch Copy ersetzen, funktioniert das Debuggen immer noch (das Problem der anderen Antwort ist für mich ab VS2017 nicht behoben)
Kolichikov
0

Doppelklicken Sie auf "Mein Projekt".

Klicken Sie auf "Paketmanifest ...".

Klicken Sie auf "Anwendung".

Geben Sie unter 'Anzeigename' den Namen ein, unter dem Ihre Exe aufgerufen werden soll.

In Ihrem Fall wäre es: 'Demo', da der Projektname 'SampleDemo' eine Ausgabe-Exe mit dem Namen 'Demo' haben soll.

Pollaris
quelle