我正在开发Visual Studio 2010.我开发了一个WPF C#应用程序,它将通过网站部署到客户端。下载并安装后,他们必须注册应用程序,该应用程序将向服务器发送信息并写入一些注册表项。 我创建了一个安装项目,以便为我的应用程序创建安装程序包。它安装正确,并在控制面板/添加删除程序中自动注册应用程序,如果用户希望有一天卸载该程序,这是很好的。
问题:如何强制卸载程序执行某些代码或启动其他应用程序,以便将信息发送到当前用户正在停用的网站并卸载该程序?
问题:如果用户现在卸载程序,只删除文件,最终删除注册表值,但网站仍会认为用户仍然有效该软件的副本,如果他想再次下载,该网站不会让他这样做。
答案 0 :(得分:1)
您必须实施安装操作,并在适当的设置事件中运行它们。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Deployment.WindowsInstaller;
namespace CustomAction1
{
public class CustomActions
{
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session.Log("Begin CustomAction1"); // Here you can write your own custom action code
return ActionResult.Success;
}
}
}
选择CustomAction1.CA.dll文件并将其添加到Advanced Installer项目中 转到“自定义操作”页面,使用“添加自定义操作”选项卡或工具栏中的序列添加“新安装的自定义操作”,然后选择CustomAction1.CA.dll 在“自定义操作属性”视图的“功能名称”字段中,选择CustomAction1 构建项目并测试它
http://www.advancedinstaller.com/user-guide/qa-c-sharp-ca.html
答案 1 :(得分:1)
如果您的安装项目是Visual Studio安装项目,那么基本上您只需添加一个自定义操作进行安装,一个用于卸载。这是旧的但仍然相关 - 您可以安排在安装结束时和卸载时运行程序: