.Net存在:鸡肉和鸡蛋?

时间:2009-11-27 16:10:22

标签: c# .net

基于C#的程序有几种选择可以确定安装了哪个.Net版本。但是有可能确定是否安装了.Net IS?我的意思是如果我在没有安装任何.Net的机器上运行C#程序,我会收到以下错误:


Myprogram.exe - 应用程序错误

应用程序无法正确初始化(0xc0000135)。单击“确定”终止应用程序。

确定

是的,我可以写一个包装器(一些外部程序或msi-package或类似的东西),但我想知道我是否可以从我的C#程序中进行这种健全性检查?我只想检查.Net存在并在失败时退出,并提供正确的警告,例如“需要Microsoft .Net。请安装bla-bla-bla”。

有任何线索吗?感谢。

4 个答案:

答案 0 :(得分:10)

我认为执行此操作的首选方法是为您的应用创建安装程序,并使.Net Framework成为安装程序检查的预先请求。

您还可以包含.Net Framework可重新分发的组件,以便安装程序在未找到时安装它。

See this question for more info

答案 1 :(得分:4)

如果你创建一个ClickOnce安装程序并添加你需要的.NEt版本作为先决条件,那么当你的用户第一次安装你的程序时,将会为你完成这项检查。

答案 2 :(得分:4)

不,C#无法检查.NET是否存在。这就像询问您是否可以编写程序来检查计算机是否已打开。

您需要编写本机代码来检查这一点,或者更优选地,需要编写检查此内容的安装程序。

答案 3 :(得分:1)

您可以使用Bootstrapper Plug-in,该框架将与您的应用程序捆绑在一起。