繁体   English   中英

Visual Studio SUO文件破解应用程序

[英]Visual Studio SUO file breaking application

我正在清理C#Visual Studio 2008解决方案,并遇到了麻烦。 我正在尝试删除不必要的文件,以准备将代码置于适当的版本控制之下。 在这样做时,我删除了现有的.suo文件和所有二进制工件,以获得干净的开始。 当我这样做时,我的程序无法通过Microsoft.PointOfService库访问连接的条形码扫描程序。 我已经将问题缩小到.suo中。 如果我保留原始.suo,我可以检索连接的扫描仪列表。 使用新的扫描仪时,连接的扫描仪不会显示在PosExplorer.GetDevices()的调用中。

我不清楚为什么与.suo相关的任何事情都会影响程序的行为。 该解决方案包含三个项目,其中两个由主应用程序引用。 在测试中跟踪这个问题时,我发现对这两个项目的引用有时会破坏干净的.suo并且必须重新建立。 它们与扫描仪无关。 我还必须重新启用顶级项目的调试构建配置。

有任何想法吗? 如果我可以避免,我宁愿不必检查遗产.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。

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

检查SUO是否针对特定位数。 有时你必须明确。 继续输出,无法加载时会出现问题

Program Files (x86)\Honeywell\UPOS Suite\POS4NET Suite\POS for NET\bin\HHSO4NET.dll

错误的位数可能会破坏加载路径和名称解析。 你是否在魔法SUO中定义了其他任何路径? 我可以把它的副本解剖一下吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM