.NET Framework的目标版本与启动条件不匹配

我在VS 2010中构建了一个ac #project。它通过COM引用了一个C ++项目,这也是解决方案的一部分。 上周五,我做了一个成功的构建,更改了一行代码,进行了另一个构建,我开始收到有关.NET的错误。

项目中.NET Framework的目标版本与.NET Framework启动条件版本“.NET Framework 3.5”不匹配。 更新.NET Framework启动条件的版本,以匹配高级编译选项对话框(VB)或应用程序页面(C#,F#)中的.NET Framework的目标版本。

  • 项目 – >属性 – >应用程序 – >目标框架(适用于Debug和Release中的每个项目)
  • 项目 – >属性 – >发布 – >先决条件(已确认.NET 3.5和Windows Installer 3.1)
  • 设置 – >启动条件 – > .NET Framework
  • 设置 – >属性 – >先决条件

我还查看了安装程序的vdproj代码,确认启动条件是.NET 3.5:

"ComponentsUrl" = "8:" "Items" { "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1" { "Name" = "8:.NET Framework 3.5 SP1" "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1" } "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" { "Name" = "8:Windows Installer 3.1" "ProductCode" = "8:Microsoft.Windows.Installer.3.1" } } "ComponentsUrl" = "8:" "Items" { "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Net.Framework.3.5.SP1" { "Name" = "8:.NET Framework 3.5 SP1" "ProductCode" = "8:Microsoft.Net.Framework.3.5.SP1" } "{EDC2488A-8267-493A-A98E-7D9C3B36CDF3}:Microsoft.Windows.Installer.3.1" { "Name" = "8:Windows Installer 3.1" "ProductCode" = "8:Microsoft.Windows.Installer.3.1" } } "LaunchCondition" { "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_799EF2A78D074B669D0B30310FD56A67" { "Name" = "8:.NET Framework" "Message" = "8:[VSDNETMSG]" "FrameworkVersion" = "8:.NETFramework,Version=v3.5" "AllowLaterVersions" = "11:FALSE" "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=131000" } } 

由于我为x86和x64编译器构建,我有两个安装项目。 对于x86处理器,第二个不会出现.NET错误。 我已经将其vdproj中的代码与此进行了比较,它看起来是一样的。

我在这个问题上找到了几个主题,包括一个非常好的主题,但是没有一个主题帮我解决了这个问题。 任何的意见都将会有帮助。

编辑

我将所有内容都更改为.NET 4.0,以确定它是否有所作为,并且项目已成功构建。 我把它改回来了,它再次给了我.NET版本错误。 我检查了vdproj文件中的任何“4.0”引用,并且只找到了AspNetVersion,它也出现在x86版本的安装程序中。

 "AspNetVersion" = "8:4.0.30319.0" 

我需要使用.NET 3.5发布,所以这只是一个练习,看看是否将版本更改为其他内容并返回将解决问题。

通过UI(不是文本编辑器)来改变它。 从这里开始 。

1)选择安装程序项目

2)在解决方案资源管理器或解决方案导航器中,单击面板“启动条件编辑器”顶部的图标(在VS2010中,带双筒望远镜的图标,在VS2015和VS2017中,图标是一张纸,前面有一个filter)。

3)在启动条件下,选择“属性”右侧的“.Net框架”选择“版本”,您将看到下拉列表。 将框架更改为您的目标框架。

4)构建和安装。

如果您随后收到类似以下内容的消息:

警告:.NET Framework启动条件“.NET Framework 4”的版本与选定的.NET Framework引导程序包不匹配。 更新.NET Framework启动条件以匹配在“先决条件”对话框中选择的.NET Framework版本。

执行以下步骤:

1)右键单击安装程序项目,然后单击“属性”。

2)单击“先决条件”按钮。

3)根据需要改变。

编辑:根据注释更新了不同版本的VS的启动条件编辑器图标说明。

事实certificate,由于某些原因,C ++代码也与.NET相关联。 我用这篇文章来帮助我将c ++ .NET版本从4.0更改为3.5。 基本步骤是

  1. 在文本编辑器中打开c ++项目vcxproj
  2. 找到v4.0
    • 这可能需要在Globals PropertyGroup下创建
  3. 将4.0更改为3.5
  4. 在VS中打开项目
  5. 右键单击c ++项目并选择属性
  6. 选择“公共属性”并确认版本为3.5
  7. 选择配置属性 – >常规
  8. 确保Platform Toolset设置为v90

与此项目相同的问题已从2008年转换为2010年。

要更改引导程序,我打开了.csproj并从中手动删除了3.5中的实例:

  False .NET Framework 3.5 SP1 Client Profile false   False .NET Framework 3.5 SP1 false  

此外,我发现您可以右键单击“安装和部署”项目,点击属性,转到先决条件,然后选择正确的.NET框架。

很难找到它,你必须点击Prerequisites按钮。