对于我正在进行的项目,我不允许使用ClickOnce.我的老板希望程序看起来"真实"(使用安装程序等).
我已经安装了Visual Studio 2012 Professional,并且一直在使用InstallShield安装程序,它肯定会成为很好的安装程序,但我无法弄清楚如何启用应用程序"自动更新"(也就是说,当它启动时) up,检查以确保它使用的是最新版本).
我被要求对代码进行微小的改动 - 将一个附加内容转换为减法,我真的不希望人们必须卸载旧版本,然后每次我做一个小版本时都要重新安装新版本像这样改变.
如何让应用程序检查更新并安装它们?或者这不可能(或不容易)?
JYe*_*ton 24
关于这个问题已经有很多问题了,所以我会把你推荐给那些人.
您希望确保避免卸载的一件事是,您在每个版本上使用相同的升级代码,但更改产品代码.这些值位于Installshield项目属性中.
一些参考:
小智 6
我认为您应该在codeplex.com http://autoupdater.codeplex.com/上检查以下项目
该示例应用程序使用C#开发为项目名称为“ AutoUpdater”的库。DLL“ AutoUpdater”可以在C#Windows应用程序(WinForm和WPF)中使用。
关于AutoUpdater,有某些功能:
如何使用?
在要自动更新的程序中,只需在Main过程中调用AutoUpdate函数。自动更新功能将使用从网站/ FTP中的文件读取的版本来检查版本。如果程序版本低于读取的版本,则程序将下载自动更新程序并启动它,并且该函数返回True,这意味着将运行自动更新,并且应关闭当前程序。自动更新程序从要更新的程序中接收几个参数,并执行必要的自动更新,然后启动更新的系统。
#region check and download new version program
bool bHasError = false;
IAutoUpdater autoUpdater = new AutoUpdater();
try
{
autoUpdater.Update();
}
catch (WebException exp)
{
MessageBox.Show("Can not find the specified resource");
bHasError = true;
}
catch (XmlException exp)
{
bHasError = true;
MessageBox.Show("Download the upgrade file error");
}
catch (NotSupportedException exp)
{
bHasError = true;
MessageBox.Show("Upgrade address configuration error");
}
catch (ArgumentException exp)
{
bHasError = true;
MessageBox.Show("Download the upgrade file error");
}
catch (Exception exp)
{
bHasError = true;
MessageBox.Show("An error occurred during the upgrade process");
}
finally
{
if (bHasError == true)
{
try
{
autoUpdater.RollBack();
}
catch (Exception)
{
//Log the message to your file or database
}
}
}
#endregion
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136051 次 |
| 最近记录: |