Die Lösung besteht aus zwei Projekten: main.csproj
und helper.csproj
.
Was ich tun möchte, ist dll, dem helper
project als eingebettete Ressource für main.dll
zugeordnet wird.
Zu diesem Zweck scheint es angebracht zu sein, ein benutzerdefiniertes Kompilierungsattribut für das Projekt main
: /resource: <path to dll>
hinzuzufügen.
Das Problem ist, dass ich nicht herausfinden kann, wie dieser Kompilierparameter über die Projekteigenschaft hinzugefügt wird.
PS Vielleicht kann jemand eine andere Lösung vorschlagen, um Änderungen im Kompilierprozess zu vermeiden.
Sie sollten die Helper-Assembly als Ressource in main.csproj hinzufügen können. Dadurch wird MsBuild die richtigen Parameter für csc
generieren.
(MsBuild ist die Build-Engine, die von .NET im Allgemeinen bis einschließlich 4.x verwendet wird und auch von VisualStudio verwendet wird.)
Was Sie tun können, um dies einzurichten, ist:
Main
, und wählen Sie Vorhandenes Element hinzufügen aus. Fügen Sie die Assembly, die als verknüpftes Element eingebettet werden soll, aus dem Ordner bin des Hilfsprojekts hinzu. (Klicken Sie auf den kleinen Pfeil auf der Schaltfläche Hinzufügen im Auswahldialog, um auf die Option zum Hinzufügen als Verknüpfung zuzugreifen.) Main
Aktion auf Eingebettete Ressource . Kniffliges Bit wäre es, den richtigen Build einzubauen, so dass Sie den Debug-Build oder den Release-Build abhängig von der Konfiguration, die Sie erstellen, einbeziehen. Wenn Sie das brauchen, können Sie entweder:
${Configuration}
in den Pfad für die Helfer-DLL einzufügen. Um sicherzustellen, dass Sie beim Erstellen der Hauptbaugruppe immer die Helper-Assembly erstellen, würde ich Ihnen empfehlen, einen Projektverweis zum Hauptprojekt hinzuzufügen.
Tags und Links .net c# visual-studio-2010 csc