2017-05-19 2 views
1

Um die Version einer Assembly lokal verwende ich diesen Code zu erhalten:Ist es möglich, die Version einer Baugruppe, die im Internet ist, wie onedrive, zu erhalten?

Version myVersion = AssemblyName.GetAssemblyName(myPathToDll).Version; 

Dies hat den Vorteil, dass nicht die Assembly im Speicher nicht geladen werden, so dass er nicht blockiert ist und auch ich muß nicht übertragen Die gesamte DLL, wenn es sich um einen Remote-Server im LAN handelt.

aber ich frage mich, ob es eine Möglichkeit gibt die Version der DLL zu überprüfen, ob diese dll die Wolke ist, zum Beispiel in Microsoft Onedrive oder eine Webseite ... etc.

Ich mag würde, um zu vermeiden, muss die Datei auf den lokalen Computer herunterladen und überprüfen, weil meine Idee ist, eine Update-Anwendung zu entwickeln, die Updates beim Start prüft und alle DLLs herunterladen würde die Anwendung sehr langsam beim Start machen.

Danke.

+0

Warum haben Sie keinen API-Endpunkt an derselben Stelle, an der Sie eine DLL-Datei verwenden, die Ihre Anwendung für die Version abfragen kann? API könnte die Version von der DLL lesen, schnell sein und sie einfach an die App zurückgeben. –

+0

Wäre es nicht viel einfacher, einfach die aktuellen Versionsnummern in einer flachen Datei zu pflegen und damit zu vergleichen? * würde die Anwendung beim Start sehr langsam machen * mache es asynchron/in einem anderen Thread und informiere dann den Benutzer nach Abschluss, wenn seine Aufmerksamkeit benötigt wird. –

+0

@AlexK. Richtig, ich denke, eine TXT-Datei an der gleichen Stelle wie die DLL mit der Version der DLL zu haben, so dass die Version nur wenige Bytes und es ist sehr schnell. Wenn die Vesion neuer ist, dann lade ich die DLL herunter. –

Antwort

1

Sie können dies standardmäßig nicht mit dem .NET Framework tun. AssemblyName.GetAssemblyName unterstützt HTTP nicht.

Was könnten Sie tun, ist dies:

  • Machen Sie eine HttpWebRequest der Versammlung;
  • Lesen Sie die ersten X-Bytes, um die Metadaten aus der Assembly zu lesen;
  • Die Metadaten zusammenfügen und die Version lesen.

Dies ist eine Menge Arbeit, und ich kann Ihnen nicht mit dem Code dafür helfen. Sie müssen überlegen, ob es sich lohnt.

Eine andere Option könnte ein Webdienst sein, der all das für Sie erledigt. Das könnte die einfachere Option sein.

Verwandte Themen