Visual Studio SUO文件破坏应用程序

本文关键字:应用程序 文件 Studio SUO Visual | 更新日期: 2023-09-27 18:01:16

我正在清理一个c# Visual Studio 2008解决方案,遇到了一个障碍。我试图删除不必要的文件,准备将代码置于适当的修订控制之下。在这样做的过程中,我删除了现有的. so文件和所有二进制工件,以获得一个干净的开始。当我这样做时,我的程序无法通过Microsoft.PointOfService库访问连接的条形码扫描器。我已经把问题的范围缩小到。如果我保留原始的。so,我就可以检索连接扫描器的列表。使用一个新的扫描仪,连接的扫描仪不会出现在对PosExplorer.GetDevices()的调用中。

我不清楚为什么任何与。so相关的东西都会影响程序的行为。该解决方案包含三个项目,其中两个由主应用程序引用。当在测试中跟踪这个问题时,我发现这两个项目的引用有时与干净的. so不一致,必须重新建立。但它们和扫描仪没有关系。我还必须重新启用顶级项目的调试构建配置。

任何想法?如果可以避免的话,我宁愿不签入遗留文件。

我注意到额外的扫描仪驱动程序dll (HHSO4NET.dll)正在加载时,功能遗留的。so在使用中。VS输出窗口的更改部分列在下面。

Legacy . so输出窗口:

'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'

Clean . so输出窗口:

'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安装程序),再现了遗留的。so的问题。当使用遗留版本构建完成时,安装程序创建的对HHOS4NET.DLL的注册表引用似乎会被拾取。而不是新鲜的。知道去哪里找罪犯吗?

更新3

似乎卸载工作应用程序有点转移注意力。它擦除了Configuration.xml文件扫描仪驱动程序依赖于看到扫描仪(PnP?是的。那我还是有一个神秘的魔法。我试着用一个简单的c#控制台应用程序来列举连接的POS设备,但这不起作用,所以肯定是微软的POS有问题。NET框架或霍尼韦尔的驱动程序。他们真的是POS。

根据记录,在已知的"good". so中没有特殊的调试设置。我从中提取了一些字符串,但没有什么特别的。接下来,我将尝试将其放入控制台应用程序中,看看它是否在不相关的解决方案中保留其神奇属性。

Visual Studio SUO文件破坏应用程序

检查SUO是否针对特定位。有时候你必须明确一点。继续您的输出,当加载

失败时,问题就开始了。
Program Files (x86)'Honeywell'UPOS Suite'POS4NET Suite'POS for NET'bin'HHSO4NET.dll

错误的位会导致加载路径和名称解析混乱。您是否在magic SUO中定义了任何其他路径?能复印一份给我解剖吗?