C# 是否可以获取internet上的程序集版本,如onedrive?

C# 是否可以获取internet上的程序集版本,如onedrive?,c#,C#,要在本地获取程序集的版本,我使用以下代码: Version myVersion = AssemblyName.GetAssemblyName(myPathToDll).Version; 这样做的优点是不在内存中加载程序集,因此它不会被阻塞,而且如果它是局域网内的远程服务器,我也不需要传输整个dll 但是,我想知道是否有一些方法可以检查dll的版本,如果这个dll是云,例如在onedrive或网页中。。。等等 我希望避免将文件下载到本地计算机并进行检查,因为我的想法是开发一个更新应用程序,在启动

要在本地获取程序集的版本,我使用以下代码:

Version myVersion = AssemblyName.GetAssemblyName(myPathToDll).Version;
这样做的优点是不在内存中加载程序集,因此它不会被阻塞,而且如果它是局域网内的远程服务器,我也不需要传输整个dll

但是,我想知道是否有一些方法可以检查dll的版本,如果这个dll是云,例如在onedrive或网页中。。。等等

我希望避免将文件下载到本地计算机并进行检查,因为我的想法是开发一个更新应用程序,在启动时检查更新,下载所有DLL将使应用程序在启动时非常缓慢


谢谢。

默认情况下,使用.NET Framework无法做到这一点<代码>程序集名称。GetAssemblyName不支持HTTP

你能做的是:

  • 向程序集发出
    HttpWebRequest
  • 读取前X字节以从程序集读取元数据
  • 分解元数据并读取版本
这是一个很大的工作,我不能帮你的代码。你需要考虑是否值得花时间


另一个选择可能是为您提供所有这些功能的web服务。这可能是更简单的选择。

为什么不在应用程序可以查询版本的dll所在的同一位置设置API端点?API可以从dll中读取版本,速度很快,只需将其返回到应用程序。在平面文件中简单地维护当前版本号并与之进行比较,不是会简单得多吗?会使应用程序在启动时非常慢,在另一个线程中异步执行,然后在完成时通知用户是否需要注意。@AlexK。对,我想在同一个地方有一个.txt文件,而不是dll版本的dll,所以获取版本只需要几个字节,而且速度非常快。如果vesion较新,则下载dll。