VS2008安装项目在安装时总是需要.NET 3.5,但我不需要它!

时间:2008-09-16 01:31:31

标签: .net-3.5 .net-2.0 installation

1,创建并构建默认的Windows窗体项目并查看项目属性。它说该项目的目标是.NET Framework 2.0。

2,创建一个安装项目,只安装Windows Forms项目中的单个可执行文件。

3,运行该安装程序,它总是说它需要在机器上安装.NET 3.5 SP1。但它显然只需要2.0,所以我不希望客户在不需要时安装.NET 3.5。他们可能已经安装了2.0,因此强制升级是不可取的!

我查看了安装项目的先决条件并检查了.NET Framework 2.0条目,其余所有内容都未选中。所以我找不到这个奇怪的运行时要求的任何原因。有谁知道如何解决这个?

4 个答案:

答案 0 :(得分:21)

无需手动编辑文件。提示就在那里的GUID之上:“LaunchCondition”。

  1. 右键单击安装项目
  2. 选择“查看” - > “启动条件”
  3. 展开“启动条件”节点(如果尚未展开)
  4. 右键单击“.NET Framework”节点,然后选择“属性窗口”
  5. 在“属性”窗口中,将“版本”值更改为适当的值,在您的情况下为2.0.50727。
  6. 我不确定为什么从一开始就没有适当设置。

答案 1 :(得分:1)

即使您要定位2.0部署,某些程序集也可能需要3.5。例如,LINQ需要3.0。但是,这应该在您构建时反映出来。检查每个组件以确保它与2.0兼容。你不希望任何3.5的东西偷偷摸摸。如果是这种情况,我猜是第三方控件库,支持WPF。

答案 2 :(得分:1)

我最终找到了自己问题的答案。

使用记事本比较项目文件我注意到VS2008中的安装项目有一个请求版本3.5的条目,VS2005项目中的相同部分标记为2.0。奇怪的是,该部分看起来像是无法在Visual Studio环境中手动更改的部分,因此您必须手动更新项目文件。对于遇到同一问题的人来说,这里的任何地方都是项目文件的违规区域......

"Deployable"
{
    "CustomAction"
    {
    }
    "DefaultFeature"
    {
    "Name" = "8:DefaultFeature"
    "Title" = "8:"
    "Description" = "8:"
    }
    "ExternalPersistence"
    {
        "LaunchCondition"
        {
            "{A06ECF26-33A3-4562-8140-9B0E340D4F24}:_FC497D835F7243569DCCC3E3ACE4196D"
            {
            "Name" = "8:.NET Framework"
            "Message" = "8:[VSDNETMSG]"
            "Version" = "8:3.5.30729"  <--- UPDATE THIS TO 8:2.0.50727
            "AllowLaterVersions" = "11:FALSE"
            "InstallUrl" = "8:http://go.microsoft.com/fwlink/?LinkId=76617"
            }
        }
    }

答案 3 :(得分:0)

我一直使用Innosetup来部署我的项目。它非常快,而且非常可定制。一些脚本几乎没有什么是你无法做到的。 Innosetup可以检测安装了哪个版本的Framework,并在没有正确版本的情况下提示用户(使用脚本)。

我建议您尝试其他部署工具,例如Innosetup,看看您是否喜欢它们。那里有很多机会。