本人在制作安装程序把ASP.NET应用程序的数据库一同打包时,在安装时的对话框输入的数据库登陆信息死活传不进Installer类安装程序制作的步骤如下:
1.为部署项目添加Installer类
2.添加对话框(有两个文本输入,property分别为DBUSER、DBPASSWORD)
3.添加自定义操作并指定调用项目输出
参见:http://www.codeproject.com/dotnet/SetupAndDeployment.asp安装程序制作的步骤基本上可以确定没有错,因为我在Installer类Install的方法把参数抛出来(因为安装类无法调试),对话框的文本输入DBUSER默认值能抛出来,安装时输入的值却抛不出来,感觉好像执行自定义操作在输入对话框之后,只读到默认的值。抛出的代码:
public override void Install(IDictionary stateSaver){
    base.Install(stateSaver);
    throw new InstallException("数据库安装失败,请检查" + Context.Parameters["dbuser"] + Context.Parameters["dbpassword"] );
.....
}疑惑之下作一个测试的安装例子,发现按着http://www.codeproject.com/dotnet/SetupAndDeployment.asp
完全没有问题。难道是我的项目有其它的内容影响了正常工作?太不合理了。
本人第一次作安装程序,对这个Installer葫芦还不太了解。期望过来人耐心指点指点,不胜感激!

解决方案 »

  1.   

    创建一个Project 用来处理你的Installer,然后在你的Setup project中自定义操作视图中选择Installer Project,可参考
    http://xucanzhao.cnblogs.com/archive/2005/10/02/248063.html
      

  2.   

    在“自定义操作”视图里,要为Install操作的“CustomerActionData”属性设定值,比如:/server=[SERVER_NAME] /target="[TARGETDIR]\" /database=[DATABASE_NAME] /username=[USER_NAME] /password=[PASSWORD] /version=[WINDOWSVERSION] /des="[DesktopFolder]\" /webdir="[TARGETDIR]\"