代码之家  ›  专栏  ›  技术社区  ›  Phil Wright

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

  •  11
  • Phil Wright  · 技术社区  · 16 年前

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

    2,创建仅安装Windows窗体项目中单个可执行文件的安装程序项目。

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

    我已经查看了安装项目的先决条件,并检查了.NET Framework 2.0条目,其余的都未选中。所以我找不到任何理由来解释这个奇怪的运行时需求。有人知道怎么解决这个问题吗?

    4 回复  |  直到 16 年前
        1
  •  21
  •   Adrian Clark    16 年前

    不需要手动编辑文件。提示就在guid的上面:“launchCondition”。

    1. 右键单击安装项目
    2. 选择“查看”->“启动条件”
    3. 展开“启动条件”节点(如果尚未展开)
    4. 右键单击“.NET Framework”节点并选择“属性窗口”
    5. 在“属性”窗口中,将“版本”值更改为适当的值,在您的情况下为2.0.50727。

    我不知道为什么从一开始就设置得不合适。

        2
  •  1
  •   volley    16 年前

    即使您的目标是2.0部署,某些程序集可能需要3.5。例如,Linq需要3.0。但是,这应该在构建时反映出来。检查每个组件以确保它与2.0兼容。你不想让任何3.5的东西潜入。如果是这样,我想应该是支持WPF的第三方控制库。

        3
  •  1
  •   Phil Wright    16 年前

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

    比较使用记事本的项目文件时,我注意到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"
                }
            }
        }
    
        4
  •  0
  •   Cyril Gupta    16 年前

    我一直使用InnoSetup来部署我的项目。它速度非常快,而且可定制。对于脚本编写,几乎没有什么是你不能做的。InnoSetup可以检测安装了哪个版本的框架,并提示用户是否存在正确的版本(使用脚本)。

    我建议您尝试其他部署工具,如innosetup,看看您是否喜欢它们。外面有很多机会。