.NET部署问题,有没有人遇到过定义了Uninstall方法却没有执行的情况

dongwei2345 2008-03-06 04:35:51
明明已经定义了Uninstall方法

/// <summary>
/// 移除时的操作
/// </summary>
/// <param name="savedState"></param>
public override void Uninstall(System.Collections.IDictionary savedState)
{
throw new Exception("dd");
string connectionString = ReadDataText(FILE_CONFIG);
CreateDBHelper createHelper = new CreateDBHelper(connectionString);
//检查数据库是否存在
if (createHelper.CheckDbIsHave(ShareInfo.DB_NEED))
{
//存在,则弹出对话框提示用户是否移除数据库
DialogResult result = MessageBox.Show
("是否需要移除数据库(此操作将销毁所有数据,切不可恢复)", "友情提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
//选择移除,则移除数据库
if (result == DialogResult.Yes)
createHelper.DropDatabase(ShareInfo.DB_NEED);
}

base.Uninstall(savedState);
}

而且在自定义操作的卸载步骤中也加入了程序集操作
可是就是卸载的时候不会运行这个方法
有没有人遇到过这个问题,怎么解决
...全文
137 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
深海之蓝 2010-03-17
  • 打赏
  • 举报
回复
结贴率太低!
neiji 2010-03-17
  • 打赏
  • 举报
回复
要在派生类声明前添加此行!

[RunInstaller(true)]
dongwei2345 2008-03-06
  • 打赏
  • 举报
回复
长话短说
1、新建安装程序项目
2、导入开发项目
3、在安装程序项目中导入开发项目,设置为主要输出
4、安装程序项目下新建一个安装程序类XXX.cs
5、重写安装程序类的public override void Uninstall(System.Collections.IDictionary savedState)
6、安装程序项目中设置自定义操作,在卸载节点上加入开发项目的输出

设置完毕,运行就跳过了

我刚才继续试验
我用一个全新的项目按照这么做
发现完全可以。
然后我用原来的代码导入这个全新的项目,一开始也可以。
然后后面不知道生成了一下,就不行了。

应该是属于丢失的范畴吧。。。

有没有人知道如何解决
我用的是VS2005
octverve 2008-03-06
  • 打赏
  • 举报
回复
部署时你是怎样设置的?你说的越详细,就容易让别人帮你找到解决办法
changjiangzhibin 2008-03-06
  • 打赏
  • 举报
回复
不会,帮顶
dongwei2345 2008-03-06
  • 打赏
  • 举报
回复
安装类文件貌似无法在使用中调试的。

priwilliam 2008-03-06
  • 打赏
  • 举报
回复
加个断点看看是不是直接跳过了
kbryant 2008-03-06
  • 打赏
  • 举报
回复
友情顶一下:)
dongwei2345 2008-03-06
  • 打赏
  • 举报
回复
自己顶一下

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧