我正在构建一个ExcelDNA插件,需要完整版的.Net(4.0或3.5)(我正在使用System.Web的某些部分).因此,仅具有客户端版本的用户会收到错误.
如果只安装了客户端版本,我想在启动时提示用户"获取最新版本"弹出窗口.
是否有任何万无一失的方法来检查是否安装了完整版本?通过谷歌搜索似乎很多建议检查注册表,这似乎容易出错,因为有许多.Net版本.在这种情况下,我需要检查哪些路径来构建:
bool IsFullDotNetVersion()
{
}
Run Code Online (Sandbox Code Playgroud)
是否有可能/好主意检查是否存在仅在完整版中可用的功能?即是否可以检查System.Web是否存在于环境中?(不包括在.Net的客户端版本中吗?)
作为一个附带问题:如何使用我系统上安装的不同.net版本轻松测试我的应用程序.有没有.Net切换器?
查看 GAC 以查看System.Web(或您需要的任何程序集)是否存在。
这是一些在我的机器上运行的代码。
private static const string BasePath = @"c:\windows\assembly";
public static bool HasDotNetFullversion()
{
var gacFolders = new List<string>()
{
"GAC", "GAC_32", "GAC_64", "GAC_MSIL",
"NativeImages_v2.0.50727_32", "NativeImages_v2.0.50727_64"
};
var assemblyFolders = from gacFolder in gacFolders
let path = Path.Combine(BasePath, gacFolder)
where Directory.Exists(path)
from directory in Directory.GetDirectories(path)
select directory;
var hasSystemWeb = assemblyFolders.Any(x =>
x.EndsWith("system.web", StringComparison.InvariantCultureIgnoreCase));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |