Mik*_*oud 9 c# com windows-services visual-foxpro
好吧,所以我有一个Windows服务,它有一个FileSystemWatcher监视某些Visual FoxPro数据库文件的输出文件夹.它利用VFPOLEDB.1提供程序来读取这些文件.我无法离开这家供应商,因为它正在生产中使用.
但是,我从来没有必要支持这个应用程序,所以这就是为什么我的开发盒没有设置它.这是我的环境:
所以,当我第一次开始收到错误时,我认为我根本没有提供者,我是对的.所以,我从这里下载并安装了它.
然后我继续删除文件夹中的文件,但我得到了同样的错误.
我想是因为它是一x64台机器,我可能会遇到问题,因为它可能已经被注册了,因为它可能已经被删除SysWOW64,所以我按照预期运行了,所以我运行了这个命令:
regsvr32 "C:\Windows\SysWOW64\mscomct2.ocx"
Run Code Online (Sandbox Code Playgroud)
并且它说它已成功注册(这意味着什么都没有LOL)但我再次删除文件 - 同样的错误.
我还没有重新启动我的机器,如果有人有令人信服的理由认为是问题我可以,但一般来说,如果组件已正确注册regsvr32,则没有必要.我已经使用了大量的COM对象,只要我已经注册它就不需要重新启动就可以访问该对象.
有没有人知道我需要执行的另一个步骤来注册这个东西?
Ste*_*eve 27
它是应该注册的.它是为AnyCPU平台编译的应用程序.
在x64操作系统中,这会生成64位代码,64位代码无法访问32位驱动程序.
将您的平台更改为x86,你会没事的.
编辑
两年后,有一些东西可以添加到这个答案中.现在使用Visual Studio 2013,奶酪已被移动.文章链接详细解释了编译器设置默认值是如何更改的.该AnyCPU目标CPU用Prefer 32 bit,除非特别需要你的应用程序可以作为32位应用程序也x64bit操作系统离开几乎没有房间给64位应用程序的手段.
有了这个新配置,记住Mark Berry在下面评论中发布的内容也变得非常重要.如果你的(现在32位)的应用程序需要在IIS 64位环境中工作,你需要设置Application Pool与Enable 32 bit Applications
我有台式机应用程序(Win7 x64 VS 2015)-不管如何都不断出现相同的错误。我将平台目标更改为x86,以admin等身份安装了MSI-做了我能用google搜索到的所有内容-没运气。帮助我的是为所有人安装MSI,而不是仅为我安装-安装程序中最后一个向导的屏幕之一。