以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]打包后的程序不能安装到虚拟机里吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=51877)

--  作者:chnfo
--  发布时间:2014/6/4 21:56:00
--  [求助]打包后的程序不能安装到虚拟机里吗?
我今天用开发版打包了一个发布后的项目,然后在本机安装运行正常。本机WIN7旗舰版 32位。

然后在本机装了一个虚拟机XP的,在虚拟机里安装之后,总是显示创建外部连接“AAAA”失败,请联系管理员或开发者,重新设置数据库链接字符串!

但是我在项目属性-项目事件-BeforeConnectOuterDataSource里已经加入了代码

\'找到原来的共享数据库连接文件
Dim oldcs As String = e.ConnectionString
Dim a As Integer = oldcs.IndexOf("\\\\")
Dim b As String = oldcs.SubString(a)
Dim c As Integer = b.IndexOf(";")
Dim th As String = b.SubString(0,c)
MessageBox.Show(th)

Dim ipFile As String = e.ProjectPath & "Source.txt"  \'在项目路径下设了一个文本文件用来存放用户自己设定的共享数据库文件
If e.Name = "AAAA" Then
    If Filesys.FileExists(ipFile) Then
        Dim IP As String = FileSys.ReadAllText(ipFile)
        If FileSys.FileExists(IP) Then
            e.ConnectionString = e.ConnectionString.Replace(th,ip)
            MessageBox.Show(e.ConnectionString)
        Else
            Messagebox.Show("指定共享数据库不存在!请联系系统管理员!","提示")
        End If
    End If
End If

在本机运行之后,会显示出正确的e.ConnectionString全部内容,但我发现在数据表-外部数据源-设置里的内容还是替换之前的e.ConnectionString内容。

是不是这个问题的影响?

--  作者:有点甜
--  发布时间:2014/6/4 21:58:00
--  

 你要确保你的虚拟机可以访问对应的mdb数据库。


--  作者:chnfo
--  发布时间:2014/6/4 22:01:00
--  
甜兄还在啊?
我发布后在本机可以运行的程序,发给一个朋友安装,他也报同样的错。

1、我是直接把共享数据库拷到虚拟机里的,不是在本机共享。
2、在虚拟机里设置了这个数据库文件夹共享。
3、发布后的程序也是直接在虚拟机里执行的安装 。

创建外部连接“AAAA”失败,请联系管理员或开发者,重新设置数据库链接字符串!


图片点击可在新窗口打开查看此主题相关图片如下:虚拟机里的共享数据库.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-6-4 22:06:52编辑过]

--  作者:有点甜
--  发布时间:2014/6/4 22:07:00
--  
 你msgbox看一下连接的字符串是什么,再去看对应的路径下是否有那个mdb数据库。
--  作者:chnfo
--  发布时间:2014/6/4 22:10:00
--  
这是运行的时候显示的结果

图片点击可在新窗口打开查看此主题相关图片如下:执行message的链接.png
图片点击可在新窗口打开查看

检索文件夹的情况

图片点击可在新窗口打开查看此主题相关图片如下:链接报错及共享文件夹检索.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2014-6-4 22:12:07编辑过]

--  作者:有点甜
--  发布时间:2014/6/4 22:12:00
--  
你在虚拟机那里可以直接访问这个共享的文件夹?
--  作者:chnfo
--  发布时间:2014/6/4 22:13:00
--  
可以,直接输入共享文件夹目录就可以看到这个共享数据库文件了。PMFOX.accdb,上一层楼上增加了截图


前面的代码有个地方输错了

Dim ipFile As String = e.ProjectPath & "Source.txt"  \'在项目路径下设了一个文本文件用来存放用户自己设定的共享数据库文件
If e.Name = "AAAA" Then  \'这里应当是“PMCS”
[此贴子已经被作者于2014-6-4 22:18:17编辑过]

--  作者:有点甜
--  发布时间:2014/6/4 22:18:00
--  

 几个原因

 

1、虚拟机没有安装access2007的组件;

 

2、试试把数据库放在C盘或者D盘,不要用共享目录;

 

3、或许虚拟机就是不能正常使用。


--  作者:chnfo
--  发布时间:2014/6/4 22:19:00
--  
啊,虚拟机也要装那个OFFICE组件?发布后安装的软件,客户端也要装那个2007工具?如果用户根本就没装ACCESS,那不是挂了?
[此贴子已经被作者于2014-6-4 22:22:02编辑过]

--  作者:有点甜
--  发布时间:2014/6/4 22:25:00
--  
以下是引用chnfo在2014-6-4 22:19:00的发言:
啊,虚拟机也要装那个OFFICE组件?发布后安装的软件,客户端也要装那个2007工具?如果用户根本就没装ACCESS,那不是挂了?
[此贴子已经被作者于2014-6-4 22:22:02编辑过]

 

需要安装那个叫什么连接access2007的组件,不然不能连接2007,不过access2003是通用的。