是否有可能获得互联网上的程序集版本,如onedrive?

时间:2017-05-19 10:57:49

标签: c#

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

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

这样做的好处是不会将程序集加载到内存中,因此它不会被阻止,如果它是局域网内的远程服务器,我也不需要传输整个dll。

但是,我想知道如果这个dll是云,有没有办法检查dll的版本,例如在onedrive或网页上等等。

我想避免必须将文件下载到本地计算机并进行检查,因为我的想法是开发一个更新应用程序,在启动时检查更新并下载所有dll会使应用程序在启动。

感谢。

1 个答案:

答案 0 :(得分:1)

默认情况下,您无法使用.NET Framework执行此操作。 AssemblyName.GetAssemblyName不支持HTTP。

你能做的是:

  • 为程序集创建HttpWebRequest;
  • 读取前X个字节以从程序集中读取元数据;
  • 分解元数据并阅读版本。

这是很多工作,我无法帮助你解决它的代码。你需要考虑是否值得花时间。

另一个选项可能是为您完成所有这些工作的Web服务。这可能是更直截了当的选择。