在我的ClickOnce c#應用程序中,如何判斷用戶是否只更新了應用程序?我希望在用戶下載更新後顯示發行說明或更改日誌。如何判斷ClickOnce應用程序是否剛剛更新?
我知道如何以編程方式(拼寫?)檢測更新是否可用,並手動執行更新。我可以顯示更改日誌或發佈說明,但如果可能的話,我想要在更新後選擇。我的Googlefu讓我失望了。
在我的ClickOnce c#應用程序中,如何判斷用戶是否只更新了應用程序?我希望在用戶下載更新後顯示發行說明或更改日誌。如何判斷ClickOnce應用程序是否剛剛更新?
我知道如何以編程方式(拼寫?)檢測更新是否可用,並手動執行更新。我可以顯示更改日誌或發佈說明,但如果可能的話,我想要在更新後選擇。我的Googlefu讓我失望了。
我不確定是否存在或不存在框架機制。
但是你可以自己手動處理。如果您或發佈嚮導正在爲每個版本更新您的版本號,則可以將應用程序最後一次在本地運行時的版本號(Registry/AppData/Whatever)存儲起來,然後將其與當前版本#進行比較。如果版本號不匹配,您可以設置本地「上次運行版本」,然後顯示發行說明。
您可以使用類似獲取版本的應用程序:
private string version
{
get
{
System.Reflection.Assembly _assemblyInfo = System.Reflection.Assembly.GetExecutingAssembly();
string ourVersion = string.Empty;
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
ourVersion = ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString();
}
else
{
if (_assemblyInfo != null)
{
ourVersion = _assemblyInfo.GetName().Version.ToString();
}
}
return ourVersion;
}
}
我知道它老了,但你可以用CheckForUpdate()
方法:
using System.Deployment.Application;
public bool IsUpdateAvailable()
{
if (!ApplicationDeployment.IsNetworkDeployed) return false;
return ApplicationDeployment.CurrentDeployment.CheckForUpdate();
}
呀。我希望有一個框架的東西。 – Amy 2010-01-15 16:16:09
快速查看ApplicationDeployment將我帶到http://msdn.microsoft.com/en-us/library/system.deployment.application.applicationdeployment.isfirstrun.aspx,這可能是您可以使用的。它說「只要用戶從一個版本升級到下一個版本,這個屬性的價值就會重置」,這看起來像你想知道的。 – Ruddy 2010-01-15 17:09:14
Ruddy,你是一個美麗的人。謝謝! – Amy 2010-01-15 19:45:34