我使用Prism和ClickOnce創建了一個新應用程序,但是在測試ClickOnce的哈希檢查以更新僅更新時,我注意到我需要進行一些體系結構更改以充分利用ClickOnce更新。ClickOnce部署應用程序的棱鏡體系結構考慮
爲了清楚起見,我將部署到具有較差互聯網連接的機器,並且我真的希望以最小帶寬發佈小型,快速更新。理想情況下,只有已修改的模塊才能通過線路發送。
首先,我注意到客戶端應用程序項目的散列(使.exe生成的散列)總是被更改,而且總是被重新下載。這導致我刪除Shell.xaml,ShellViewModel.cs和一些ResourceDictionaries並將它們移動到一個新的ShellModule中。這留下了AggregateModuleCatalog,Bootstrapper,App.xaml和App.cs;每個文件都是仙女,所以這很好。
其次,我注意到ClickOnce的編程更新可以進入一個模塊,所以我在AutoUpdateModule中有這個。
最後,我最後關心的是基礎設施項目。每個模塊直接引用基礎架構,如果基礎架構被修改,所有模塊都會獲得新的散列值我相信這意味着即使我向基礎架構內的枚舉添加一行,整個應用程序也會重新下載。
有沒有一個優雅的解決方案來解決這個問題?如果您已經使用ClickOnce部署了Prism應用程序,那麼可以幫助或改進您的部署的其他架構修改是什麼?