c# – Visual Studio SUO文件打破应用程序

前端之家收集整理的这篇文章主要介绍了c# – Visual Studio SUO文件打破应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在清理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.

为了记录,在已知的“好”中没有特殊的调试设置.我从中提取字符串,没有什么显示出来.接下来,我将尝试将其放入控制台应用程序,以查看它是否在不相关的解决方案中保留其神奇属性.

解决方法

检查SUO是否针对特定的位置.有时你必须明确.在输出时,无法加载故障开始
Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll

错误的位可能会弄乱负载路径和名称解析.你有魔术SUO中定义的任何其他路径吗?我可以复制一份解剖吗?

猜你在找的C#相关文章