以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  UserCode类型出事值设定引发异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79438)

--  作者:sjzsdu
--  发布时间:2015/12/31 14:49:00
--  UserCode类型出事值设定引发异常

项目发布后,在本机可以用,换了个电脑就出现如下问题:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:项目,BeforeOpenProject
详细错误信息:
“UserCode”的类型初始值设定项引发异常。


--  作者:大红袍
--  发布时间:2015/12/31 15:05:00
--  

你这个事件写了什么代码?BeforeOpenProject,贴出来。


--  作者:sjzsdu
--  发布时间:2015/12/31 15:17:00
--  
Dim config As String = Environment.currentdirectory & "\\config.xml"
If FileSys.FileExists(config) = False Then
    e.HideSplashForm = True
    MessageBox.show("系统项目文件丢失,无法打开此项目,请重新安装系统或者联系厂家!")
    e.Cancel=True
Else
    
    Dim xmlpath As String = "System/DecryptCode"
    Dim xmlDoc As New System.XML.XmlDocument
    xmlDoc.Load(config)
    Dim xmlNd As System.XML.XmlNode = xmlDoc.SelectSingleNode(xmlpath)
    Dim decCode As String = xmlNd.InnerText

    
    Dim Val1 As String = computerID
    Dim Val2 As String = EncryptText(Val1,"jugao","")
    Val2= Val2.Substring(2,8)
    Dim Val3 As String = EncryptText(Val2,"jugao","")
    Val3= Val3.Substring(2,8)
    Dim Val4 As String = EncryptText(Val3,"2015","")
    Val4= Val4.Substring(2,8)

    If decCode <> Val4 Then
        Dim frm As New Form1
        frm.ShowDialog() \'模式打开
        If  bl_取消  Then
            e.Cancel = True
        End If
        
        If bl_确定 Then
            \'你的策略
          
            If str_注册码=Val4 Then
                Dim config1 As String = Environment.currentdirectory & "\\config.xml"
                Dim xmlpath1 As String = "System/DecryptCode"
                Dim xmlDoc1 As New System.XML.XmlDocument
                xmlDoc1.Load(config1)
                Dim xmlNd1 As System.XML.XmlNode = xmlDoc1.SelectSingleNode(xmlpath1)
                xmlNd1.InnerText = str_注册码
                xmlDoc1.save(config)
              
            Else
               If  MessageBox.show("注册码错误,请联系软件开发者","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)=DialogResult.OK Then
                e.Cancel=True
                 End If
            End If
            
        End If
    End If
    
End If

--  作者:sjzsdu
--  发布时间:2015/12/31 15:18:00
--  
在本机没问题,发布后的项目在其他计算机上运行就出错。
--  作者:sjzsdu
--  发布时间:2015/12/31 15:19:00
--  
本机和别的计算机运行环境也没有变,都是window 7 ,都安装了.netframework 4.5
--  作者:大红袍
--  发布时间:2015/12/31 15:23:00
--  

1、打开exe的时候,右键,用管理员身份运行;

 

2、你往事件里加入msgbox,重新发布,看看执行到哪句代码后报错。

 

http://www.foxtable.com/help/topics/1485.htm

 


--  作者:sjzsdu
--  发布时间:2016/1/4 12:19:00
--  
以管理员身份登录,结果还是一样的
我用messagebox.show 查出来,在全局代码中

Public Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
\'取消
MessageBox.show("button4click")
bl_取消 = True
Me.Close()
End Sub

MessageBox.show("button4click")这个能正确执行
接着  bl_取消=true 就出错

备注:装foxtable的计算机运行时不存在问题,发布完的系统装到其他计算机上去就出现这个问题。

--  作者:大红袍
--  发布时间:2016/1/4 12:26:00
--  

做一个空项目,也写全局代码 bl_取消=true 再发布测试。

 

如果报错,把做的空项目发上来测试。


--  作者:sjzsdu
--  发布时间:2016/1/4 12:34:00
--  
新做了一个空项目,空项目运行正常,没有报错。


--  作者:大红袍
--  发布时间:2016/1/4 12:40:00
--  
以下是引用sjzsdu在2016/1/4 12:34:00的发言:
新做了一个空项目,空项目运行正常,没有报错。

 

原本的项目,把bin文件夹删除,重新打开,重新发布。