我有一個需要從CD運行的.NET WinForms應用程序。我需要弄清楚的是,如果用戶需要安裝.NET版本,或者在必要時進行安裝,而不是在安裝後運行應用程序。我發現有關自舉的任何信息都涉及應用程序的安裝和安裝。如果我不安裝任何東西,我怎麼能這樣做?我會打開任何信息...NET Bootstrap without setup
3
A
回答
3
您使用visual studio構建的msi安裝程序可以包含一個本機setup.exe,它可以檢查框架依賴關係,並在需要時啓動安裝程序。你甚至可以在CD上加入可再發行組件。但是你必須安裝程序才能工作。
否則,你必須建立你自己的本地代碼工具。
2
您可以編寫一個檢查.NET運行時的小型本地代碼加載器,在必要時觸發.NET的安裝,然後啓動.NET應用程序。
2
最直接的方法是檢查註冊表項,在這個問題中列出:
一個腳本文件,可能是從CD到最簡單的檢查方法:
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 Imaging Component。這就是爲什麼包含在VS2010中的標準.NET4客戶端配置文件先決條件在XP上失敗的原因。所以我寫了my own bootstrapper。 您可以下載我的示例VS2010解決方案,該解決方案爲控制檯應用程序創建引導程序。 但它需要你安裝(只是複製)我的引導程序。因此,這裏的步驟:
- 下載我Windows Imaging Component bootstrapper
- 解壓,以%PROGRAMFILES%\微軟的SDK \的Windows \ v7.0A \引導程序\軟件包
- 下載我BootstrapperTest solution
- 生成解決方案。您會看到它在\ bin \ Debug目錄中創建了BootstrapperTest.exe和setup.exe。 Setup.exe是一個引導程序,您可以在未安裝.NET的情況下運行它 - 它會爲您提供,然後運行BootstrapperTest.exe。
- 如果你想分發它作爲一個單一的文件,我建議使用ChilkAt Zip2Secure或它的類似物。 Zip2Secure非常易於使用,我希望您不會遇到任何問題。
相關問題
- 1. jQuery datatable without bootstrap
- 2. 啓動Ogre BaseApplication without Setup對話框
- 3. .Net RoleProvider without the connectionString
- 4. Adjusting Bootstrap 3 row size without less
- 5. node js net sockets + websocket without socket.io
- 6. .Net with single .exe without .NET Framework installation
- 7. .NET Core:NUnit不會執行SetUp
- 8. BootStrap DropDown on <a> tag without text
- 9. ADAL和angularjs WITHOUT .NET生成HTTP 404
- 10. Inno Setup的.NET框架Autoinstaller問題
- 11. 如何使用Inno Setup註冊.NET DLL
- 12. 先決條件.net framework 3.5 sp1 in setup
- 13. SelectSingleNode without namespace
- 14. Formatting DateTime.Now.ToUniversalTime()without string.Format()
- 15. ant LinkageError without includeantruntime
- 16. Hosting Silverlight without IIS
- 17. stop project without debugging
- 18. redshift to_timestamp()without millisecond
- 19. SyncVar without NetworkServer.Spawn
- 20. $ _POST ['variable'] without
- 21. For loop without switch
- 22. Gateway + ServiceActivator without poller
- 23. PresentViewController without fullscreen
- 24. 使用_.without
- 25. gitk without X11
- 26. Libgdx light without box2d
- 27. End with without statement
- 28. BytesMessage without OOM
- 29. Spinner without Dropdown
- 30. eclipselink without persistence.xml
因此,本質上你需要一個名爲「LaunchProgram.exe」而不是setup.exe的引導程序,當它檢查完.NET時,它會運行「MainProgram.exe」而不是「InstallMe.msi」? – Grant 2009-02-04 17:38:57
是的,這是正確的。 – dstr 2009-02-05 12:21:51