【问题标题】:Visual Basic Windows Form Application vb check for .Net FrameworkVisual Basic Windows 窗体应用程序 vb 检查 .Net Framework
【发布时间】:2017-04-25 11:26:51
【问题描述】:

我正在 Visual Studio 2017 社区中的项目 - Windows 窗体应用程序中工作 - 它应该打开和管理存档中的文件、更改文件中的特定字符串和其他一些东西。

现在,我已经设法做到了,但现在我唯一的问题是如何制作一个将在 vb 应用程序之前运行的.exe 程序并检查是否安装了特定 (4.5.2) .Net Framework 版本然后运行vb 应用程序,因为运行 vb 应用程序需要 .Net Framework。

如果未安装特定 (4.5.2) .Net Framework 版本,请询问用户是否要下载/安装它。

我希望它们都在一个文件中。

有可能吗?以及如何?

【问题讨论】:

  • 是的,但是 ClickOnce 需要在同一个文件夹中运行其他文件(不仅仅是 1 个 .exe 文件),而且我想要一个文件应用程序,为什么不能将它们全部打包在一个 .exe 中?跨度>
  • It already works that way。不要帮忙。
  • @HansPassant 所以系统本身会默认检查并提示您安装?
  • stackoverflow.com/questions/38656770/… 这将帮助您开始创建 exe 安装程序,如果您的计算机没有所需的框架,安装程序会提示您安装它,并且 10 次中有 9 次,它将为您安装缺少的组件
  • 当我尝试安装所需的东西时,我得到了这个错误,我已经有了 Visual Studio:s24.postimg.org/wj5tgd21x/image.jpg

标签: .net vb.net visual-studio-2012


【解决方案1】:

您可以检查注册表路径: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP 您已经列出了安装了哪些 .NET 版本。

缺点:您的程序需要管理员权限才能检查注册表。

这里是MSN page to determine the installed .NET Framework的链接

编辑:

You could use a batch file to check if the .NET node exists. 如果节点存在,您可以使用 .NET 程序检查已安装的版本以及是否安装了所需的版本。

对于你的例子,这看起来像:

reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP"

if %ERRORLEVEL% EQU 0 (
    <YourProgramName>
) else (
    <Some output, which informs the user, that .NET is required>
)

【讨论】:

  • 是的,但如果尚未安装 .Net 框架,我无法从 vb 应用程序检查注册表路径/信息,我想在运行实际 vb 应用程序之前检查它是否已安装,所以我需要一些程序打包vb app,检查.Net是否安装,如果安装:将vb app从资源中解压到本地驱动并运行,否则提示用户安装.Net framework
  • 我应该使用什么程序语言?
  • @Icet1 您可以使用批处理文件。请检查我的编辑。
  • 这是否正确:reg query "HKLM\Software\Microsoft\NET Framework Setup\NDP" if errorlevel 0 (ECHO Net is installed) else (ECHO Net is required) ------- ------------------------ 因为这是我得到的:s14.postimg.org/vhohjnp3l/image.jpg
  • @Icet1 更正了批处理命令。请使用if %ERRORLEVEL% EQU 0 (
【解决方案2】:

当发布你的项目时,包括Net framework,它会自动询问replace是否安装了older version,我认为这种方式更容易

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-05-10
    • 1970-01-01
    相关资源
    最近更新 更多