【问题标题】:How to communicate with .NET 3.5 SP1 bootstrapper如何与 .NET 3.5 SP1 引导程序通信
【发布时间】:2010-10-12 13:36:42
【问题描述】:

我正在为我的 .NET 3.5 SP1 WPF 应用程序构建一个自定义 Windows 安装程序包。我希望它检测客户端计算机上安装的 .NET 框架的版本(如果有),如果没有,则自动从 Microsoft 下载。

现在,我已经阅读了有关 .NET 引导程序的信息,甚至在我制作的 ClickOnce 安装程序中看到了它的运行情况。它似乎可以满足我的需要。

问题是,我不想使用 ClickOnce。我偏爱NSIS。所以基本上我正在寻找一些关于如何以某种方式与引导程序进行通信或集成的文档,以便我可以在我自己的安装程序中利用它。但我没有找到太多。

任何帮助将不胜感激。

谢谢, 史蒂夫

【问题讨论】:

    标签: .net .net-3.5 deployment


    【解决方案1】:

    你会想要like this 的东西,除非我用过它,它最多只能正确检测到 2 个。我现在在家,但是当我开始工作时,我会发布我对这段代码的破解,以使其能够在 3.5 SP1 中运行。他们稍微改变了版本号的位置。

    编辑:发布我的版本on pastebin

    【讨论】:

    • 太棒了。这很好用。由于 .NET 检测和未来版本的不可预测性,我对这样做有点担心。但我想我会在它成为问题时解决这个问题。
    • 嘿,亲爱的!是的,我不得不在注册表中挖掘以确保它适用于 .NET 3。我确信有一种经过 Microsoft 认证的方法可以做到这一点,但到目前为止我在 Windows Server 08 和 XP SP2 上的测试已经解决了这个问题。祝你好运!
    【解决方案2】:

    我认为您实际上无法与引导程序进行交流。我的理解是你定义了先决条件,它会根据需要安装它们。我一直使用 MSbuild GenerateBootstrapper 来做到这一点。

    <ItemGroup>
        <BootstrapperFile Include="Microsoft.Net.Framework.2.0">
            <!--This requires the either the Platform SDK or VS.Net to be installed-->
            <ProductName>Microsoft .NET Framework 2.0</ProductName>
        </BootstrapperFile>
    </ItemGroup>
    
        <!--Create the bootstrapper-->
        <GenerateBootstrapper
             ApplicationName="MyApp"
             ApplicationFile="MyApp.msi"
             ApplicationUrl="$(ApplicationUrl)"
             BootstrapperItems="@(BootstrapperFile)"
             Culture="en"
             CopyComponents="True"
    
             ComponentsLocation="Relative"
             OutputPath="$(InstallationPath)\"/>
    

    【讨论】:

    • 我无法让它工作,尽管它看起来很有希望。稍后我可能需要在其他项目中再次查看此内容。谢谢。
    • 有什么不好的?这是在 Windows 中为 .Net 应用程序引导运行时的事实上的方式
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 2010-09-19
    • 2010-09-15
    • 2015-10-25
    相关资源
    最近更新 更多