Ich habe folgende Situation:Seite an Seite in dll
- Eine ausführbare in C# entwickelt verbindet eine verwaltete DLL, die DLL eine andere dritte Partei fordert (geladen, wie nebeneinander). Die Exe verwendet nicht direkt ein Objekt aus der DLL des Drittanbieters.
Die Beziehung zwischen den Komponenten ist:
EXE - >> MyDll >> 3rdPartyDLL
Ich mag würde eine Referenz des 3rd-Party-DLL in myDLL.manifest nur einstellen (es kompiliert mit mt.exe) wie folgt aus: myDLL.manifest
<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="myDLL"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="ThirdPartyDLL" version="1.0.0.0"/>
</dependentAssembly>
</dependency>
<file name ="myDLL.dll"/>
</asmv1:assembly>
Aber wenn ich die EXE es löst eine Ausnahme zu starten, weil es die 3partyDLL nicht finden. Es funktioniert nur, wenn ich auch in die EXE.manifest die Abhängigkeit der 3rdPartyDLL einfügen.
Aber in diesem Fall muss jedes Mal, wenn die dritte partyDLL die Version ändert (auch für kleine Korrekturen), ich die EXE neu kompilieren, um das Manifest darin einzubetten.
Ich habe versucht, nach einem praktischen Beispiel mit einem solchen Szenario zu suchen, aber ich habe nichts gefunden. Gibt es eine Referenz oder ein praktisches Beispiel?
Es aktiviert ein Manifest, das in dieser DLL eingebettet ist. Das ständige Ändern der deklarierten Version in diesem Manifest ist nicht sinnvoll. Sie wissen einfach nicht, was für eine Härte das für Sie bedeutet, bis Sie ein Telefon nehmen und es ihnen erzählen. –