我有一个在 VS 2010 中构建的 ac# 项目。它通过 COM 引用了一个 C++ 项目,这也是解决方案的一部分。上周五,我进行了一次成功的构建,更改了一行代码,又进行了一次构建,然后我开始收到有关 .NET 的错误。
项目中 .NET Framework 的目标版本与 .NET Framework 启动条件版本“.NET Framework 3.5”不匹配。在高级编译选项对话框 (VB) 或应用程序页面(C#、F#)中更新 .NET Framework 启动条件的版本以匹配 .NET Framework 的目标版本。
- 项目 -> 属性 -> 应用程序 -> 目标框架(对于调试和发布中的每个项目)
- 项目 -> 属性 -> 发布 -> 先决条件(确认 .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 发布,所以这只是一个练习,看看将版本更改为其他版本并返回是否可以解决问题。