我认为我属于一个常见的类别,“它在我的开发环境中完美运行,但在其他任何地方我都会得到奇怪的结果”,而且对于我所有的努力,我只会更加困惑。
我有2个申请。其中一个是.NET 4 C#app,另一个是(我认为).NET 3.5 VB。 C#应用程序创建了一个DLL,暂时,我有一个用3.5编译的这个DLL的版本,以便我可以在我的VB应用程序中使用它。我有VB应用程序的源代码,但不是C#应用程序。我从来没有在我的机器上编译C#应用程序。
在此DLL中,它引用基于C的库。 (我觉得这是问题。)
在我的开发环境中,我可以在我的VB应用程序中使用此DLL而不会出现任何问题。但是,当我在另一台机器上尝试此设置时,它就好像与嵌入式基于C的DLL相关的位不是最新版本。
这不是我得到任何错误。 VB应用程序仍然正常运行。 VB应用程序正在实例化并使用该C#DLL(其中包含C DLL),我可以看到VB应用程序的不一致似乎是C DLL的问题。我从来没有在我的机器上使用C#应用程序的源代码,所以我不知道为什么它在我自己的工作上很好,但在其他任何地方都没有。
我觉得我已经达到了我对此所知甚少的结果,我也看不到其他任何事情要去。我确实觉得我应该可以在其他机器上重新创建一个工作环境。
我还能看到什么?
修改
我想我可能会添加一些更具体的信息,希望它能带来解决方案。目前,我已经更新了VB代码以使用不同的值。
此图片表示从我的计算机上的某个C-DLL方法返回的值。
一切看起来都应该如此。然后我将我的DLL和可执行文件带到新机器上,运行它,这些相同的项目显示为:
我已经多次检查了GAC。我已经茫然地看着加载的组件日志几个小时,只注意在两个环境中都加载了相同的(正确的)DLL。我确保在两台机器上安装相同的各种MS更新。我已从项目中使用的两个环境中删除了所有第三方DLL,并将它们重新加载到这两个DLL中。
此时,我不知道导致这种情况发生的原因。没有错误。它在每个人的机器上都像我自己一样快乐地工作,但我完全相信(可能是因为无法看到实际问题)我的开发机器创建/有“某些东西”我没有移动,改变了我刚才觉得我已经用尽了对此事的有限知识。
哦,最后一件事,DLL是从VS2010环境提供给我的。我明天将有2010年,并希望使用正常的.NET 4 DLL而不是我要求的3.5。这是我修改这个问题的最后希望,而不是我改变VB代码。
有什么想法吗?
答案 0 :(得分:0)
很抱歉,如果我错过了一些内容,但您考虑过,它可能只是格式设置,而不是不同的结果? 从您的示例中,我只能看到以两种不同格式显示的相同结果(一种具有两个固定小数位,另一种仅显示相关数字)。 如果您在代码中检查顶部值== 2.0,那么它应该在所有计算机上都是真的,如果是这样 - DLL在所有计算机上返回相同的值,它们只是以不同的方式显示(可能计算机区域设置不同?)< / p>