Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Visual Studio SUO文件中断应用程序_C#_Visual Studio - Fatal编程技术网

C# Visual Studio SUO文件中断应用程序

C# Visual Studio SUO文件中断应用程序,c#,visual-studio,C#,Visual Studio,我正在清理一个C#Visual Studio 2008解决方案,遇到了一个障碍。我试图删除不必要的文件,以便将代码置于适当的修订控制之下。为此,我删除了现有的.suo文件和所有二进制工件,以获得一个干净的开始。执行此操作时,我的程序无法通过Microsoft.PointOfService库访问连接的条形码扫描仪。我已经把问题缩小到了.suo中的某个地方。如果我保留原始.suo,我可以检索已连接扫描仪的列表。使用新的扫描仪时,连接的扫描仪不会显示在对PosExplorer.GetDevices()

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

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

有什么想法吗?我宁愿不去登记遗产。如果我能避免的话

更新

我注意到,在使用函数legacy.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'
'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'
Clean.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'
'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安装程序),重现了legacy.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中。是否在项目的“调试”选项卡中设置了默认命令行参数或工作目录?是否在“项目属性->调试”下设置了任何自定义项?可能是时候打破Sysinternals的过程监视器了。项目文件夹中是否有任何剩余的bin或obj文件夹?如果是,请删除它们和支持文件并重新加载所有内容。当我在一些手持应用程序上工作时,我自己和其他开发人员有时需要这样做。同时,您将其保留在vs2008中。我这样问是因为微软在以后的版本中放弃了对compact框架的支持。@dklingman。我清除了所有构建产品,包括以前存在的二进制文件。这个建筑很好用。失败的只是正在运行的应用程序(很可能是由于卸载的DLL)。这一切都在vs2008中。