Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Basic Windows窗体应用程序vb检查.Net Framework_.net_Vb.net_Visual Studio 2012 - Fatal编程技术网

Visual Basic Windows窗体应用程序vb检查.Net Framework

Visual Basic Windows窗体应用程序vb检查.Net Framework,.net,vb.net,visual-studio-2012,.net,Vb.net,Visual Studio 2012,我正在Visual Studio 2017社区中从事一个项目—Windows窗体应用程序—该项目旨在打开和管理归档文件中的文件,更改文件中的特定字符串以及其他内容 现在,我已经设法做到了,但现在我唯一的问题是如何制作一个将在vb应用程序之前运行的.exe程序,并检查是否安装了特定的(4.5.2).Net Framework版本,然后运行vb应用程序,因为运行vb应用程序需要.Net Framework 如果未安装特定的(4.5.2).Net Framework版本,请询问用户是否要下载/安装该版

我正在Visual Studio 2017社区中从事一个项目—Windows窗体应用程序—该项目旨在打开和管理归档文件中的文件,更改文件中的特定字符串以及其他内容

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

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

我想把它全部放在一个文件里


可能吗?如何检查?

您可以检查注册表路径:
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\NET Framework安装程序\NDP
您列出了安装的.NET版本

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

这里是一个链接到

编辑: 如果节点存在,则可以使用.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>
)
reg查询“HKLM\Software\Microsoft\NET Framework安装程序\NDP”
如果%ERRORLEVEL%EQU 0(
)否则(
)

发布项目时,如果安装了
旧版本
,它会自动要求
替换
,我认为这种方式更容易

是的,但ClickOnce需要运行同一文件夹中的其他文件(而不仅仅是1.exe文件),我需要一个文件应用程序,为什么它不能全部打包在一个.exe中?。“没有帮助。@HansPassant所以系统本身会进行检查,并在默认情况下提示您安装吗?”?这将帮助您开始创建exe安装程序,如果您的计算机没有所需的框架,安装程序将提示您安装它,10次中有9次,它将为您安装缺少的组件当我尝试安装所需内容时,我收到此错误,我已经有了Visual Studio:是的,但如果尚未安装.Net framework,我无法检查vb应用程序的注册表路径/信息,我想在运行实际的vb应用程序之前检查它是否已安装,因此我需要一些程序来打包vb应用程序,检查是否已安装.Net,然后,如果安装了:将vb应用程序从资源提取到本地驱动器并运行,否则提示用户t安装.Net Framework我应该使用什么程序语言?@Icet1您可以使用批处理文件。请检查我的编辑。这是否正确:如果错误级别为0(安装了ECHO NET),请注册查询“HKLM\Software\Microsoft\NET Framework Setup\NDP”,否则(需要ECHO NET)--------------因为我得到的是:@Icet1更正了批处理命令。如果%ERRORLEVEL%EQU为0,请使用