Benutzer mit den meisten Antworten
DLL in DLL einbinden

Frage
-
Hallo!
Ich habe ein UserControl welches ich als DLL kompiliere (na klar, was sonst :-)). In diesem UserControl habe ich Verweise auf andere DLL's (Verweis-DLL).
Wie kann ich angeben, dass die Verweis-DLL's mit in die UserControl-DLL eingebunden werden?
Fred.
Antworten
-
Hallo Fred,
Ich hätte das so gemacht:
SUB-DLL in der Resource in einer DLL einbinden und dann in einer Methode z.B.: InstallAllComponents installieren
Um resourcen zu erstellen sieh dir mal diesen Thread an: https://msdn.microsoft.com/de-de/library/7k989cfy(v=vs.90).aspx
Das könnte so aussehen:
public static void InstallAllComponents() { System.IO.File.WriteAllBytes(Application.StartupPath + @"\SUB-DLL.dll", Properties.Resources.SUB_DLL); }
Dann in der Program.cs Datei also vor dem Start aller anderen Funktionen kurz diese Methode aufrufen und du hast automatisch deine DLL mitgeliefert.
Das soll natürlich nur anregen wenn dir Wege einfallen dies zu verbessern bist du herzlich eingeladen sie auszuprobieren^^
Hoffe ich konnte helfen
Eure DragonSkills99
My website: http://www.dragonskills99.16mb.com
- Bearbeitet DragonSkills99 Donnerstag, 23. Juni 2016 13:47
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 30. Juni 2016 09:43
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 7. Juli 2016 12:38
Alle Antworten
-
Hallo Fred,
sobald du Verweise in einer DLL angelegt hast reicht das aus. Ich vermute jedoch, dass du ein Problem beim Verteilen der Anwendung hast. Denn sobald du deine UserControl-DLL in weiteren Anwendungen verweist, wird die verwendete DLL im Usercontrol nicht mehr mitgeführt und das führt zur Exception.
Du musst als in deinem Hauptprogramm die verwendeten DLLs in der UserControl-DLL hineinkopieren und mit ausgeben lassen.
#Hauptprogramm
- UserControl-DLL (Verweis)
- SUB-DLL (Kopie)#UserControll-DLL
- SUB-DLL (Verweis) -
Hallo David!
Danke für deine Antwort.
Genau das will ich ja verhindern: SUB-DLL (Kopie) deshalb suche ich nach einer Möglichkeit, die SUB-DLL's in die UserControl-DLL einzubinden.
#Hauptprogramm
- UserControl-DLL (Verweis)
#UserControll-DLL
- SUB-DLL (Verweis += Resource)Fred.
-
Hi,
schau mal hier:
http://derpturkey.com/embedding-dlls-or-resources-in-c-executable/
https://visualstudiogallery.msdn.microsoft.com/a7196a81-67fc-4a26-a88a-b68ef31c2266
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo Stefan!
Ja, das ist genau das, was ich gesucht hatte :-))
Leider habe ich den Vitevic Assembly Embedder noch nicht zum "laufen" gebracht. Die AWSSDK.dll gibt es niergens auf dem PC und auch eine AWSSDK.Core-DLL nicht. Ich kann zwar den Eintrag in der Projekt-Datei machen,
<ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'" > <Reference Include="AWSSDK"> <HintPath>...</HintPath> <EmbedAssembly>true</EmbedAssembly> </Reference> </ItemGroup> <ItemGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'" > <Reference Include="AWSSDK"> <HintPath>...</HintPath> </Reference> </ItemGroup>
// Habe auch den Pfad so eingestellt: <HintPath>..\..\AWS SDK for .NET\bin\Net35\AWSSDK.dll</HintPath>
unter Advanced wird mir dann auch Ambed Assembly angezeigt, aber ohne die DLL ist das ja eine Luftnummer ;-)
Hat das schon mal Jemand gemacht?
Trotzdem vielen Dank für deine Hilfe!
Fred.
- Bearbeitet perlfred Donnerstag, 9. Juni 2016 13:28
-
Hallo Fred,
Ich hätte das so gemacht:
SUB-DLL in der Resource in einer DLL einbinden und dann in einer Methode z.B.: InstallAllComponents installieren
Um resourcen zu erstellen sieh dir mal diesen Thread an: https://msdn.microsoft.com/de-de/library/7k989cfy(v=vs.90).aspx
Das könnte so aussehen:
public static void InstallAllComponents() { System.IO.File.WriteAllBytes(Application.StartupPath + @"\SUB-DLL.dll", Properties.Resources.SUB_DLL); }
Dann in der Program.cs Datei also vor dem Start aller anderen Funktionen kurz diese Methode aufrufen und du hast automatisch deine DLL mitgeliefert.
Das soll natürlich nur anregen wenn dir Wege einfallen dies zu verbessern bist du herzlich eingeladen sie auszuprobieren^^
Hoffe ich konnte helfen
Eure DragonSkills99
My website: http://www.dragonskills99.16mb.com
- Bearbeitet DragonSkills99 Donnerstag, 23. Juni 2016 13:47
- Als Antwort vorgeschlagen Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 30. Juni 2016 09:43
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Donnerstag, 7. Juli 2016 12:38