我正在清理C#Visual Studio 2008解决方案,并遇到了一个障碍.我正在尝试删除不必要的文件,准备将代码置于正确的版本控制之下.在这样做的时候,我删除了现有的.suo文件和所有的二进制文件,以获得一个干净的开始.当我这样做时,我的程序无法通过Microsoft.PointOfService库访问连接的条形码扫描器.我把这个问题缩小到了.suo里的一些东西.如果我保留原来的.suo,我可以检索连接的扫描仪列表.使用新的,连接的扫描仪不会显示在调用PosExplorer.GetDevices().
我不清楚为什么与.suo有关的任何事情都会影响程序的行为.该解决方案包含三个项目,其中两个由主应用程序引用.在测试中跟踪此问题时,我发现对这两个项目的引用有时会与clean.suo相冲突,并且必须重新建立.它们与扫描仪无关.我还必须重新启动顶级项目的调试版本配置.
有任何想法吗?我宁可不必检查遗留的.如果我可以避免它.
更新
我注意到功能遗留的.suo正在使用时,会加载额外的扫描程序驱动程序DLL(HHSO4NET.dll). VS输出窗口的更改部分如下所示.
旧版.suo输出窗口:
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.PointOfService.DeviceSimulators.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.PointOfService.ExampleServiceObjects.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll'
清洁.suo输出窗口:
'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Simulator Service Objects\Microsoft.PointOfService.DeviceSimulators.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.PointOfService.ControlBase\1.12.0.0__31bf3856ad364e35\Microsoft.PointOfService.ControlBase.dll' 'foo.vshost.exe' (Managed): Loaded 'C:\Program Files (x86)\Microsoft Point Of Service\SDK\Samples\Example Service Objects\Microsoft.PointOfService.ExampleServiceObjects.dll'
更新2
我通过卸载以前安装的版本的程序(从VS部署项目的msi安装程序)来重现旧版的.suo的问题.看来,当使用legacy.suo完成构建并且不是新的时,安装程序创建的HHOS4NET.DLL的注册表引用将被选中.任何想法在哪里寻找罪魁祸首?
更新3
似乎卸载工作的应用程序是一个红色的鲱鱼.它扫描了扫描仪驱动程序所依赖的Configuration.xml文件以查看扫描仪(PnP?是对).那还是让我有一个神秘的魔法.我尝试使用简单的C#控制台应用程序枚举所连接的POS设备,并且没有工作,所以某些东西肯定与MS的POSfor.NET框架或霍尼韦尔的驱动程序相提并论.他们真的是一个POS.
为了记录,在已知的“好”中没有特殊的调试设置.我从中提取字符串,没有什么显示出来.接下来,我将尝试将其放入控制台应用程序,以查看它是否在不相关的解决方案中保留其神奇属性.