by Anonymous » 28 Feb 2025, 07:51
Erstellen einer Anwendung, mit der MP3 -Dateien abgespielt werden müssen. Es ist stark signiert, daher muss es eine signierte TLB -DLL verwenden. Ich habe mich über Quartz DLL gelesen und einen Wrapper dafür erstellt und unterschrieben, mit dem gleichen Schlüssel, den die Anwendung und alle Bibliotheken unterschrieben haben: < /p>
Code: Select all
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\sn.exe" -p My.pfx My.snk
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\TlbImp.exe" %windir%\system32\quartz.dll /out:QuartzTypeLib.dll /publickey:My.snk
In meiner App habe ich die resultierende Quartztypelib.dll als Referenz hinzugefügt und eine Methode erstellt:
Code: Select all
public void Play(string path)
{
FilGraphMgr = new FilgraphManager();
FilGraphMgr.RenderFile(path);
FilGraphMgr.Run();
}
< /code>
Während des Builds wird die DLL in den Ausgangsordner kopiert. Wenn dieser Methode -Aufruf erreicht ist, löst das Framework eine Ausnahme aus: < /p>
system.io.fileloadexception: 'konnte keine Datei oder Assembly' quarttzTypelib, Version = 1,0.0.0, Culture = Neutral, publicKeyToken = 8FFCE24EC5DC181E 'oder ONDE AFFECTEL. Starke Namensvalidierung fehlgeschlagen. (Ausnahme von hResult: 0x8013141a) '
Die Version im Fehler stimmt dem mit illdasm.exe
für diese DLL überein. Die Build -Konfiguration ist 'jede CPU' mit ausgeschaltetem 'Prefer 32bit', was durch eine andere Referenz erforderlich ist. Das Einschalten dieser Option hilft nicht.
funktioniert nicht, wenn ich versuche, mit der ursprünglichen PFX -Datei mit/keyFile: Argument:
TLBIMP: Fehler TI1020: Ungültige starke Name angegeben.>
Erstellen einer Anwendung, mit der MP3 -Dateien abgespielt werden müssen. Es ist stark signiert, daher muss es eine signierte TLB -DLL verwenden. Ich habe mich über Quartz DLL gelesen und einen Wrapper dafür erstellt und unterschrieben, mit dem gleichen Schlüssel, den die Anwendung und alle Bibliotheken unterschrieben haben: < /p>
[code]"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\sn.exe" -p My.pfx My.snk
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\x64\TlbImp.exe" %windir%\system32\quartz.dll /out:QuartzTypeLib.dll /publickey:My.snk
[/code]
In meiner App habe ich die resultierende Quartztypelib.dll als Referenz hinzugefügt und eine Methode erstellt:
[code] public void Play(string path)
{
FilGraphMgr = new FilgraphManager();
FilGraphMgr.RenderFile(path);
FilGraphMgr.Run();
}
< /code>
Während des Builds wird die DLL in den Ausgangsordner kopiert. Wenn dieser Methode -Aufruf erreicht ist, löst das Framework eine Ausnahme aus: < /p>
system.io.fileloadexception: 'konnte keine Datei oder Assembly' quarttzTypelib, Version = 1,0.0.0, Culture = Neutral, publicKeyToken = 8FFCE24EC5DC181E 'oder ONDE AFFECTEL. Starke Namensvalidierung fehlgeschlagen. (Ausnahme von hResult: 0x8013141a) '
Die Version im Fehler stimmt dem mit illdasm.exe [/code] für diese DLL überein. Die Build -Konfiguration ist 'jede CPU' mit ausgeschaltetem 'Prefer 32bit', was durch eine andere Referenz erforderlich ist. Das Einschalten dieser Option hilft nicht.[code]Tlbimp.exe[/code] funktioniert nicht, wenn ich versuche, mit der ursprünglichen PFX -Datei mit/keyFile: Argument:
TLBIMP: Fehler TI1020: Ungültige starke Name angegeben.>