将构建操作从调试更改为发布后,控制权丢失。

3
我的问题是:当我将项目构建操作设置为发布而不是调试时,来自外部库的一个控件丢失了。每一行使用它的代码都会出现以下错误:

'myControlName'未定义。

该控件是SDK库的一部分(我的意思是我没有创建它)。
当我再次将操作设置为调试并重新构建时,问题就消失了。
那么问题出在哪里呢?
编辑:我以前遇到过这个问题,当时我使用了WeifenLuo DockPanel Suite
现在是另一个库,但错误是相同的。
编辑:参考是一个dll文件。
设置构建操作为发布后的截图如下:
enter image description here

难以置信,没有答案,没有评论,没有投票,甚至浏览量也不好,就像整个问题不存在一样!请给我任何线索,任何可以开始的点,我不知道要研究什么。 - Alaa Jabre
非常少的提示。我是否正确地认为'myControlname'是一个变量名称,'突然间'未被定义或是关于缺少类型?您能否展示一些生成错误的代码行? - Eddy
@Eddy,你说得对,我没有添加代码是因为这不是一个特定于语言的问题。 - Alaa Jabre
也许不是特定于语言的,但截图显示确实缺少一种类型(来自参考dll),这比变量声明丢失更有意义。 - Eddy
2个回答

2
有些项目设置是特定于配置的,它们为Debug和Release存储不同的值。你需要修复的第一件事,在屏幕截图中可见,是“项目+属性”,编译选项卡,向下滚动,高级编译选项,目标CPU。将其从AnyCPU更改为x86。像您正在使用的ActiveX控件很少在64位模式下可用,因此您必须强制应用程序以32位模式运行,以便可以使用该控件。
然而,这只是针对特定错误的一个长期解决方案。另一个重要且更容易解释此类问题的方法是框架目标设置。尝试选择完整的框架而不是客户端配置文件。顺便说一下,这也不是一个很好的解释。通过比较Debug和Release配置的编译选项卡设置来查找可能的其他修复程序。一个完全的异常解释是,您通过编辑.vbproj文件添加了ActiveX引用,而不是使用IDE。请注意错误列表窗口中的任何警告,这样的警告可能会产生难以诊断的其他错误。

这在旧项目上有效,我按照你说的做了一切,但我不知道哪一部分解决了问题,无论如何,一旦到办公室我会在新项目上测试它,应该没问题,谢谢。 - Alaa Jabre
第二个项目我遇到了不同的问题,但正如你所说,追踪警告后我发现了这个:“无法解析此引用”。我修复了它,现在一切都好了。 - Alaa Jabre
是的,就是那一个。顺便提一下,很容易忽略那个警告。 - Hans Passant

0
你是如何引用控件的?它是否在解决方案中的目录中?
尝试右键单击项目中的源dll,然后选择“属性”。'复制到输出目录'应该是'始终复制'。

参考文献没有这个选项。 - Alaa Jabre

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接