我有一个需要从 CD 运行的 .NET WinForms 应用程序。我需要弄清楚的是用户是否需要安装 .NET 版本或在必要时安装而不是在安装后运行应用程序。我发现的有关引导的任何信息都涉及应用程序的设置和安装。如果我不安装任何东西,我该怎么做?我愿意提供任何信息..
4 回答
我也在想,如果不制作安装程序,您将无法做到这一点,但事实并非如此。有一个 msbuild 操作,称为"GenerateBootstrapper"。如果您在 Visual Studio 中:
- 右键单击您的项目
- 卸载项目
- 编辑 YourProjectName.csproj"
然后您可以通过不同的方式添加 GenerateBootstrapper 操作(取决于您要安装的内容)。MSDN 给出了 .NET 2.0 的示例:
<ItemGroup>
<BootstrapperFile Include="Microsoft.Net.Framework.2.0">
<ProductName>Microsoft .NET Framework 2.0</ProductName>
</BootstrapperFile>
</ItemGroup>
<Target Name="BuildBootstrapper">
<GenerateBootstrapper
ApplicationFile="WindowsApplication1.application"
ApplicationName="WindowsApplication1"
ApplicationUrl="http://mycomputer"
BootstrapperItems="@(BootstrapperFile)"
OutputPath="C:\output" />
</Target>
我没有尝试这个示例,但我尝试了自己的示例,我可以告诉您,为了在 XP 机器上安装 .NET 4 Client Profile(这是今天最新的稳定 .NET 版本),您需要安装Windows首先是成像组件。这就是为什么包含在 VS2010 中的标准 .NET4 客户端配置文件先决条件在 XP 上失败的原因。所以我写了我自己的引导程序。您可以下载我的示例 VS2010 解决方案,它为控制台应用程序创建引导程序。但这需要您安装(只需复制)我的引导程序。所以这里是步骤:
- 下载我的Windows 映像组件引导程序
- 解压到 %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
- 下载我的BootstrapperTest 解决方案
- 构建解决方案。您会看到它在 \bin\Debug 目录中创建了 BootstrapperTest.exe 和 setup.exe。Setup.exe 是一个引导程序,您可以在不安装 .NET 的情况下运行它 - 它会为您获取它,然后运行 BootstrapperTest.exe。
- 如果您想将其作为单个文件分发,我建议使用ChilkAt Zip2Secure或其类似物。Zip2Secure 非常易于使用,希望您不会遇到任何麻烦。
您使用 Visual Studio 构建的 msi 安装程序可以包含一个本机 setup.exe,它会检查框架依赖性并在需要时首先启动安装程序。您甚至可以在您的 cd 中包含可再发行文件。但是您必须安装该程序才能使其正常工作。
否则,您必须构建自己的本机代码工具。
您可以编写一个小型本机代码加载器来检查 .NET 运行时,在必要时触发 .NET 的安装,然后启动您的 .NET 应用程序。