2009-02-04 48 views
3

我有一個需要從CD運行的.NET WinForms應用程序。我需要弄清楚的是,如果用戶需要安裝.NET版本,或者在必要時進行安裝,而不是在安裝後運行應用程序。我發現有關自舉的任何信息都涉及應用程序的安裝和安裝。如果我不安裝任何東西,我怎麼能這樣做?我會打開任何信息...NET Bootstrap without setup

+0

因此,本質上你需要一個名爲「LaunchProgram.exe」而不是setup.exe的引導程序,當它檢查完.NET時,它會運行「MainProgram.exe」而不是「InstallMe.msi」? – Grant 2009-02-04 17:38:57

+0

是的,這是正確的。 – dstr 2009-02-05 12:21:51

回答

3

您使用visual studio構建的msi安裝程序可以包含一個本機setup.exe,它可以檢查框架依賴關係,並在需要時啓動安裝程序。你甚至可以在CD上加入可再發行組件。但是你必須安裝程序才能工作。

否則,你必須建立你自己的本地代碼工具。

2

您可以編寫一個檢查.NET運行時的小型本地代碼加載器,在必要時觸發.NET的安裝,然後啓動.NET應用程序。

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 Imaging Component。這就是爲什麼包含在VS2010中的標準.NET4客戶端配置文件先決條件在XP上失敗的原因。所以我寫了my own bootstrapper。 您可以下載我的示例VS2010解決方案,該解決方案爲控制檯應用程序創建引導程序。 但它需要你安裝(只是複製)我的引導程序。因此,這裏的步驟:

  1. 下載我Windows Imaging Component bootstrapper
  2. 解壓,以%PROGRAMFILES%\微軟的SDK \的Windows \ v7.0A \引導程序\軟件包
  3. 下載我BootstrapperTest solution
  4. 生成解決方案。您會看到它在\ bin \ Debug目錄中創建了BootstrapperTest.exe和setup.exe。 Setup.exe是一個引導程序,您可以在未安裝.NET的情況下運行它 - 它會爲您提供,然後運行BootstrapperTest.exe。
  5. 如果你想分發它作爲一個單一的文件,我建議使用ChilkAt Zip2Secure或它的類似物。 Zip2Secure非常易於使用,我希望您不會遇到任何問題。