2010-05-14 62 views
5

我有一個Windows Forms應用程序,我最近在WPF中重寫,我需要將它發佈給我的最終用戶。我希望能夠讓用戶轉到WPF應用程序的ClickOnce安裝點,並刪除其Windows窗體應用程序,因此它們在他們的機器上都沒有。從Windows窗體移到WPF的一鍵式應用程序

完成此操作的最佳方式是什麼(閱讀:最簡單的用戶)?

我想過創建一個先決條件的命令行來檢測舊版本並卸載,但我想避免寫一些只能運行一次的東西。

回答

2

我認爲你實際上應該能夠部署WPF版本作爲新版本的Windows窗體應用程序。

每個應用程序的目標是什麼版本的.NET Framework?

兩個項目上的程序集名稱是否相同,安裝URL是否相同? (對於ClickOnce,它與projectGUID無關。)

1

我還沒有嘗試過,但你可以讓你的WPF應用程序直接替換你的WinForms應用程序?如果您發佈到相同的文件夾,請將舊項目的正確GUID複製到新項目,它可能只是無縫安裝。

這不會刪除舊版本,但每次更新ClickOnce應用程序都會保留舊版本。

或者,您是否可以將現有的WinForms項目轉換爲WPF項目?它只是一組不同的程序集引用?我從來沒有寫過WPF應用程序,所以請原諒我,如果這顯然是錯誤的。

0

爲什麼不簡單地給新的WPF應用程序相同的<ProjectGuid>,<PublishUrl>等和更高的主要版本號?

ClickOnce甚至不會意識到你從WinForms切換到WPF技術。

正常的ClickOnce版本更新功能會在下次更新應用程序時自動替換舊代碼(如果需要,可以將其設置爲自動發生)。

+0

我試過了,WinForm應用程序沒有提供更新對話框。當我啓動WPF應用程序時,它與WinForm應用程序一起安裝。你知道哪些部分需要從項目複製到項目以確保它具有相同的身份? – Tyler 2010-05-14 18:51:37

+0

我的記憶很模糊,所以我嘗試了一些實驗來確認。看來如果新項目具有相同的程序集名稱並且使用相同的公鑰簽名,它將具有相同的ClickOnce標識。您確定您使用相同的證書來簽署兩個項目,並且兩個項目的名稱完全相同嗎?如果這已經過驗證,我會嘗試複製AssemblyInfo.cs中以'和''。希望其中的一個可以做到這一點。 – 2010-05-16 04:20:48

相關問題