Visual Studio-Projekt als ausführbare Datei und DLL erstellen

8

In Visual Studio 2008-Projekteigenschaften, Registerkarte "Anwendung", kann ich den Ausgabetyp auf Windows-Anwendung, Konsolenanwendung oder Klassenbibliothek festlegen. Ich habe ein Projekt, das ich als eigenständiges Tool (Konsolen-App) erstellen möchte und für ein paar andere Tools zur Verfügung steht, an denen ich als Klassenbibliothek arbeite.

Die VS GUI erlaubt mir nur, das eine oder das andere zu wählen, und das zweimalige Bauen des Projs ist unbequem.

Wie kann ich es einrichten, um beide Ausgabetypen in einem einzigen Build-Job zu erstellen? Schreib ich eine benutzerdefinierte MSBuild .targets-Datei oder was?

    
East of Nowhere 17.03.2010, 22:55
quelle

5 Antworten

18

Wenn ich mich nicht irre, können Sie die EXE als Klassenbibliothek verwenden.
Fügen Sie in den anderen Projekten einfach einen Verweis hinzu. Eine .NET EXE ist nur eine Assembly.

    
Cheeso 17.03.2010, 23:01
quelle
4

Sie können die DLL standardmäßig erstellen und ein anderes abhängiges Ziel erstellen, das einfach eine Wrapper-Konsolenanwendung ist, die die DLL verwendet.

    
codenheim 17.03.2010 23:03
quelle
3

Erstellen Sie zwei separate Projekte, eines für Ihre Konsolenanwendung und eines für die Klassenbibliothek. Legen Sie für jeden den entsprechenden Ausgabetyp fest.

Vergessen Sie nicht, Ihrem Konsolenanwendungsprojekt einen Verweis auf Ihre Klassenbibliothek hinzuzufügen.

    
Jay Riggs 17.03.2010 23:00
quelle
3

Sie können nicht zu einer exe und zu einer DLL kompilieren. Ob eine Assembly als exe oder dll behandelt wird, wird durch ein einzelnes Bit-Flag im portablen ausführbaren Header der Datei bestimmt (siehe Ссылка für weitere Informationen). Dieses Flag kann nicht beide Werte haben.

Was Sie tun können, um Ihre Anforderungen zu erfüllen, ist einen Verweis auf Ihre exe hinzuzufügen . Sie können dies in einigen Versionen von Visual Studio (2005 und später) nicht tun, da die Benutzeroberfläche Sie nicht lässt, aber Sie können die Projektdatei manuell bearbeiten, um die Referenz hinzuzufügen. Spätere Versionen von Visual Studio erlauben Ihnen, Referenzen zu EXE-Dateien über die Benutzeroberfläche hinzuzufügen.

    
adrianbanks 17.03.2010 23:01
quelle
3

Ich denke, die einfachste Lösung besteht darin, eine EXE-Datei zu erstellen und dann eine Post-Build-Aktion auszuführen, die die EXE in eine DLL kopiert. Es gibt keinen wirklichen Unterschied zwischen den beiden in .Net.

    
JaredPar 17.03.2010 23:49
quelle

Tags und Links