是否有可能以任何可能的方式添加/更改.application
文件(或其他方式)的ClickOnce部署文件,以允許指定參數而不需要通過URL傳遞參數?這個程序集可能會在運行時編譯/重新簽名/ etc,或者另外聲明,我並不擔心我將不得不做的「其他」的界限。ClickOnce中的參數
回答
不,我不認爲這可以做到。您可以考慮將參數放在app.exe.config文件中,並在您的應用程序中使用System.Configuration.ConfigurationManager
類讀取它們。
更改.config文件的內容後,您可以使用mageui
SDK工具重新簽署應用程序和部署清單。
請看看這兩個鏈接,以便真正徹底地分析您從哪個網站啓動clickonce應用程序與應用程序本身之間進行的通信。
的基本技術是動態修改從該應用程序啓動時,Web服務器上的清單文件(S)(請記住,那些清單文件需要在他們改變後重新簽名)。
雖然,它仍然不會允許你通過「參數」本身,你也許能夠通過動態,包括您的應用程序可以在啓動時讀取一個額外的配置文件來模擬「參數」。
我上個月向ClickOnce產品小組詢問了這個問題,他們說可以做到。假設您的目標是.NET 3.5 SP-1,則可以將參數傳遞到appref-ms文件(開始菜單中的快捷方式)。
MyApp.appref-ms "my arguments"
然後你就可以使用這個檢索它們:
string[] activationData = AppDomain.CurrentDomain.SetupInformation.ActivationArguments.ActivationData;
我寫了一篇博客文章,附有代碼示例,以展示如何做到這一點,以防萬一它對你和其他人有幫助。 http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/ – RobinDotNet 2010-03-25 04:59:02
另一種方法可能是加載您通過Web服務調用(或類似)需要什麼都參數/配置應用程序啓動時向上。
這種方式可以集中控制參數,而不是將它們嵌入到應用程序中。
你總是可以實現某種形式的本地緩存的,如果你不希望每次啓動應用程序時調用Web服務的性能損失。
- 1. 將參數傳遞給ClickOnce使用ShellExecute
- 2. ClickOnce的可執行的參考問題
- 3. 防止檢查ClickOnce的新版本參數
- 4. 在當前運行的應用程序實例中獲取ClickOnce查詢參數
- 5. 確定Clickonce緩存中的Clickonce應用程序的位置
- 6. ClickOnce應用程序將不接受命令行參數
- 7. .NET部署(ClickOnce或MSI)客戶端設置/參數
- 8. 在clickonce部署上傳遞命令行參數
- 9. 從電子郵件啓動ClickOnce應用程序w /參數
- 10. ClickOnce部署從網絡共享和參數
- 11. ClickOnce部署中的Crystal Reports
- 12. 在ClickOnce中備份localDB數據庫
- 13. 的ClickOnce和postbackevent
- 14. 的ClickOnce和UserSettings
- 15. WPF和ClickOnce的
- 16. ClickOnce的問題
- 17. 的ClickOnce配置
- 18. 贖回+的ClickOnce = :-(
- 19. 調試ClickOnce部署函數
- 20. ClickOnce&References
- 21. Clickonce + HKEY_LOCAL_MACHINE
- 22. ClickOnce publishing
- 23. ClickOnce的DLL問題
- 24. 如何使用VB6的參數啓動離線ClickOnce應用程序?
- 25. 參考的exe文件.NET程序集和使用ClickOnce
- 26. Clickonce和app.config
- 27. Clickonce瘋狂
- 28. ClickOnce和GAC
- 29. WPF,Clickonce和WCF
- 30. Wpf Clickonce部署
它絕對可以做到。 http://robindotnet.wordpress.com/2010/03/21/how-to-pass-arguments-to-an-offline-clickonce-application/ – RobinDotNet 2010-03-26 17:50:37