如何从调用应用程序获取版本信息

发布于 2024-09-06 15:21:13 字数 547 浏览 3 评论 0原文

我有一个用 C# 编写的 Web 应用程序,并在 IIS 下作为 dll 运行。

我还有一些通用代码编译为单独的程序集(dll)。该公共代码包含一个返回版本信息的函数(如下)。我如何修改此代码,以便它返回 Web 应用程序 DLL 的版本信息,而不是当前的通用代码 DLL?

...
    private static Assembly _assy;

    private static void CheckAssemblyInfoLoaded()
    {
      if (_assy == null)
      {
        _assy = Assembly.GetCallingAssembly();
      }
    }

    public static string Version
    {
      get {
        CheckAssemblyInfoLoaded();
        Version v = _assy.GetName().Version;
        return v.ToString();
      }
    }
...

I have a web application written in C# and running as a dll under IIS.

I also have some common code compiled to a separate assembly (dll). This common code contains a function that returns version information (as below). How can I modify this code so it returns the version information of the web app dll and NOT the common code dll as present ?

...
    private static Assembly _assy;

    private static void CheckAssemblyInfoLoaded()
    {
      if (_assy == null)
      {
        _assy = Assembly.GetCallingAssembly();
      }
    }

    public static string Version
    {
      get {
        CheckAssemblyInfoLoaded();
        Version v = _assy.GetName().Version;
        return v.ToString();
      }
    }
...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

最终幸福 2024-09-13 15:21:13

使用 Assembly.GetAssembly(Type type) 方法获取程序集引用,在该方法中传入该程序集中定义的任何对象的类型,例如 Assembly.GetAssembly(typeof(MyClass)) ;

Get the assembly reference using the Assembly.GetAssembly(Type type) method, where you pass in the type of any object defined in that assembly, such as Assembly.GetAssembly(typeof(MyClass));

私野 2024-09-13 15:21:13

就我个人而言,我会放弃静态并将方法合并为一个。

    public string GetVersion()
    {
        Assembly assy = Assembly.GetCallingAssembly();
        Version v = assy.GetName().Version;
        return v.ToString();
    }

在这种情况下,静态可能会产生一些不需要的结果。我还将属性更改为方法;个人设计选择。

您得到了错误的程序集,因为属性 get 方法会从同一程序集中的另一个方法反弹,从而更改调用者。

Personally, I'd drop the static and combine the method into one.

    public string GetVersion()
    {
        Assembly assy = Assembly.GetCallingAssembly();
        Version v = assy.GetName().Version;
        return v.ToString();
    }

static in this scenerio could produce some unwanted results. I also changed the property to a method; a personal design choice.

Your getting the wrong assembly because the properties get method bounces off another method in the same assembly thereby changing the caller.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文