Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在卸载和安装c#应用程序时执行自定义任务_C# - Fatal编程技术网

在卸载和安装c#应用程序时执行自定义任务

在卸载和安装c#应用程序时执行自定义任务,c#,C#,我的C#windows应用程序有一个嵌入式“access”数据库。我的应用程序用于执行某些操作,这些操作将不断递增“access”数据库中某个表中的某个“Id”值 现在我的问题是,当我给客户端一个新的安装程序时,他会得到一个新的“access”数据库,“Id”的值再次从1开始。客户端的需要是,当他进行新的安装时,他应该从之前安装的“access”数据库的最后一个Id开始获得Id的值 有没有办法解决这个问题 在我看来,解决方案可能是当客户端卸载应用程序时,他应该将“Id”的值存储在某个地方,在新安

我的C#windows应用程序有一个嵌入式“access”数据库。我的应用程序用于执行某些操作,这些操作将不断递增“access”数据库中某个表中的某个“Id”值

现在我的问题是,当我给客户端一个新的安装程序时,他会得到一个新的“access”数据库,“Id”的值再次从1开始。客户端的需要是,当他进行新的安装时,他应该从之前安装的“access”数据库的最后一个Id开始获得Id的值

有没有办法解决这个问题

在我看来,解决方案可能是当客户端卸载应用程序时,他应该将“Id”的值存储在某个地方,在新安装应用程序时,access数据库中的“Id”值应该从保存的“Id”值中删除


不确定这是否可行或它将如何工作。请帮助我提供解决方案。

您可以覆盖项目中安装程序类中的安装和卸载类! 像

只需将安装程序类添加到项目中,并将其构建操作更改为“编译”!
祝你有愉快的一天

嗨,Wilfred,我必须添加这个insatller类。我的解决方案有5个项目,包括setup porjectGo to top at solution explorer添加一个新项目“C#library”作为自定义操作现在在该项目中添加一个安装程序类..在那里编码并覆盖install和unistall类,最后在安装项目自定义操作阶段添加此项目输出!(安装、提交、回滚和卸载)@Sunny这就是我要说的!遵循这个,它的工作!始终保持数据分离,仅卸载/安装代码。这个数据库显然是业务关键型的,它属于经常备份的文件共享。
public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);
        Log("*****//Install Phase\\****");
        //Do here watever you want at install time            
    }

public override void Uninstall(IDictionary savedState)
    {
        base.Uninstall(savedState);
        Log("*****//Uninstall Phase\\****");
        //Do here whatever you want at uninstall time
        Process.Start("chrome.exe", "http://www.yoursitename.com");
    }