我正在为我的.NET 3.5 SP1 WPF应用程序构建自定义Windows安装程序包。我希望它能够检测客户端计算机上安装的.NET框架的版本(如果有的话),然后在没有它的情况下自动从Microsoft下载它。
现在,我已经了解了.NET引导程序,甚至在我所做的ClickOnce安装程序中看到了它。它似乎正是我需要的。
问题是,我不想使用ClickOnce。我偏爱NSIS。所以基本上我正在寻找一些关于如何以某种方式与引导程序进行通信或集成的文档,以便我可以在我自己的安装程序中利用它。但我找不到多少。
非常感谢任何帮助。
谢谢, 史蒂夫
答案 0 :(得分:3)
你会想要一些like this,除非我使用它,它只能正确地检测到2个。我现在在家,但是当我开始工作时,我会发布我的黑客代码,使其工作到3.5 SP1。他们稍微改变了版本号的位置。
修改:发布我的版本on pastebin
答案 1 :(得分:0)
我认为您实际上无法与引导程序通信。我的理解是您定义了先决条件,并将根据需要安装它们。我一直用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)\"/>