首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在IIS ASP.NET上下文中检测.NET程序集自己的版本?

如何在IIS ASP.NET上下文中检测.NET程序集自己的版本?
EN

Stack Overflow用户
提问于 2021-09-10 17:11:37
回答 1查看 34关注 0票数 0

我有一个在winforms应用程序中非常有效的c#函数,它可以检测在AssemblyInfo.cs中标记的容器DLL的版本:

代码语言:javascript
复制
private string getVersion() {
  System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
  FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
  string tempFileVersion = fvi.FileVersion;

  if (tempFileVersion.EndsWith(".0")) {
    return tempFileVersion.Substring(0, tempFileVersion.Length - 2);
  } else {
    return tempFileVersion;
  }
}

问题是,此函数在作为ASP.NET webapp的一部分在IIS中调用时会抛出异常。我假设这归结为权限问题,但是有没有办法让一个函数在IIS上下文中询问它所在的DLL“您的版本是什么”?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-11 14:09:38

来自Steeeve的超级简单的解决方案:

添加新类:

代码语言:javascript
复制
public static class VersionInfo {
   public const string VersionString = "1.0";
}

修改两行AssemblyInfo.cs:

代码语言:javascript
复制
[assembly: AssemblyVersion(VersionInfo.VersionString)]
[assembly: AssemblyFileVersion(VersionInfo.VersionString)]

现在,我的DLL中任何需要在运行时知道它的版本的地方,都可以简单地调用VersionInfo.VersionString,而不需要求助于混乱和昂贵的反射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69135737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档