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

12

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个回答

21
无需手动编辑文件。提示就在GUID上方:"LaunchCondition"。
  1. 右击安装程序项目
  2. 选择“查看”->“启动条件”
  3. 展开“启动条件”节点(如果尚未展开)
  4. 右键单击“.NET Framework”节点,然后选择“属性窗口”
  5. 在“属性”窗口中将“版本”值更改为适当的值,在您的情况下为2.0.50727。
我不确定为什么最初没有正确设置这个。

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"
            }
        }
    }

1
即使您的目标是2.0部署,但您的某些程序集可能需要3.5。例如,LINQ需要3.0。然而,在构建时应该反映这一点。检查每个程序集以确保其与2.0兼容。您不希望任何3.5的东西悄悄地进入。如果是这种情况,我猜测可能是支持WPF的第三方控件库。

0

我一直使用Innosetup来部署我的项目。它非常快速,而且非常可定制。只要有一点脚本编写经验,几乎没有什么是你不能做到的。Innosetup可以检测安装的框架版本,并在缺少正确版本时提示用户(通过脚本)。

我建议您尝试像Innosetup这样的替代部署工具,看看是否喜欢。这里有很多机会等待着您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接