为什么我的Visual Studio Win32项目需要安装.NET 3.5 SP1?

5 c++ installer winapi visual-studio

使用Visual Studio 2008,我创建了一个C++ Win32项目.为了发布程序,我在同一个解决方案中创建了一个Visual Studio安装项目.

setup.exe提示我的用户安装.NET 3.5 SP1,安装时间通常为15分钟以上,并且只允许管理员级帐户使用.如果他们不这样做,就会出现"错误框架"的错误.我对我的项目中需要.NET 3.5 SP1的内容感到困惑.我怀疑只是因为那是我的PC所在的框架......有没有办法扩展它将运行的框架?

代码主要是Win32 API调用.以防万一,这是我的依赖和#includes:

gdiplus.lib
comctl32.lib
Winmm.lib
d3d9.lib
Run Code Online (Sandbox Code Playgroud)

(安装项目自动添加了comdlg32.dll,然后告诉我将其排除.)

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string.h>

#include <commctrl.h>
#include <process.h>
#include <sstream>
#include <math.h>
#include <d3d9.h>
#include <time.h>
#include <gdiplus.h>
Run Code Online (Sandbox Code Playgroud)

我的猜测是,在某个地方通过windows.h有一个WIN_VER或类似的版本设置设置为.NET 3.5 SP1,这是依赖来自的地方.如果是这种情况,我需要定义一个不同的版本,我很乐意听到每个人的建议是关于做什么/不应该怎么做,以及我可以追溯到最大程度上.

Chr*_*isF 3

在 VS 2008 中,默认目标框架是 .NET 3.5。

对于 C++,“通用属性”页面上有一个“目标框架”下拉菜单,但在我创建的测试项目中,它是灰色的,因此看起来在项目创建后无法更改。

我创建了第二个 C++ 项目,并从“新建项目”对话框中选择了 2.0 模板,并且“目标框架”中包含 2.0。

因此,如果您想针对较低版本的框架,那么您必须首先正确创建项目。

编辑:至于您应该瞄准哪个版本的框架 - 这完全取决于(!)

您需要使用 3.0 或 3.5 的任何功能吗?如果没有那就去2.0。如果您这样做,请选择该选项并进行下载。我不能说任何类别的用户安装特定版本的可能性有多大。随着时间的推移,他们安装 3.5 的可能性会越来越大,因为其他应用程序会需要它。