3

我有一个需要从 CD 运行的 .NET WinForms 应用程序。我需要弄清楚的是用户是否需要安装 .NET 版本或在必要时安装而不是在安装后运行应用程序。我发现的有关引导的任何信息都涉及应用程序的设置和安装。如果我不安装任何东西,我该怎么做?我愿意提供任何信息..

4

4 回答 4

4

我也在想,如果不制作安装程序,您将无法做到这一点,但事实并非如此。有一个 msbuild 操作,称为"GenerateBootstrapper"。如果您在 Visual Studio 中:

  1. 右键单击您的项目
  2. 卸载项目
  3. 编辑 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 解决方案,它为控制台应用程序创建引导程序。但这需要您安装(只需复制)我的引导程序。所以这里是步骤:

  1. 下载我的Windows 映像组件引导程序
  2. 解压到 %PROGRAMFILES%\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
  3. 下载我的BootstrapperTest 解决方案
  4. 构建解决方案。您会看到它在 \bin\Debug 目录中创建了 BootstrapperTest.exe 和 setup.exe。Setup.exe 是一个引导程序,您可以在不安装 .NET 的情况下运行它 - 它会为您获取它,然后运行 ​​BootstrapperTest.exe。
  5. 如果您想将其作为单个文件分发,我建议使用ChilkAt Zip2Secure或其类似物。Zip2Secure 非常易于使用,希望您不会遇到任何麻烦。
于 2012-04-12T14:50:52.093 回答
3

您使用 Visual Studio 构建的 msi 安装程序可以包含一个本机 setup.exe,它会检查框架依赖性并在需要时首先启动安装程序。您甚至可以在您的 cd 中包含可再发行文件。但是您必须安装该程序才能使其正常工作。

否则,您必须构建自己的本机代码工具。

于 2009-02-04T17:37:59.680 回答
2

您可以编写一个小型本机代码加载器来检查 .NET 运行时,在必要时触发 .NET 的安装,然后启动您的 .NET 应用程序。

于 2009-02-04T17:38:07.650 回答
2

最直接的方法是检查此问题中列出的注册表项:

.Net 框架检测

脚本文件可能是从 CD 中检查的最简单方法:

Windows 脚本宿主 - RegRead 方法

于 2009-02-04T17:45:36.137 回答