一个简单的问题.我有一个ASP.NET Web应用程序,其中包含几个程序集,我需要为网站中的每个程序集创建一个版本信息列表.(也许甚至还有其他几个,但重点主要是网站本身.)
此列表将显示在受保护页面上的同一应用程序中,用于验证网站的安装和升级.当然,我可以浏览BIN文件夹中的所有二进制文件并从中提取信息,但是有更好的选择吗?
第二个问题:从另一个程序集中提取版本信息的最佳方法是什么?但我想之前有人问过,我自己也能找到答案.(有反射的东西,GetExecutingAssembly和更多东西.)
IEnumerable<String> GetLoadedAssemblies() {
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies()) {
yield return assembly.ToString();
}
}
Run Code Online (Sandbox Code Playgroud)
为您提供应用程序域中使用的每个程序集的名称(包括版本号).
mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Xml, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
等等
使用这个可能有一个问题:如果网站刚刚启动,那么你感兴趣的一些程序集可能还没有加载到AppDomain中,因为它们不太可能被一个只有这个功能的特殊页面引用.如果你首先点击网站以确保所有内容都已加载它应该可以正常工作,但如果你需要更强大的东西,你必须在上面的代码中添加一些AppDomain.Load()语句.
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |