0

我们正面临一个奇怪的问题。我们有一个用 WPF 编写的用户控件,并且我们在 xaml 文件中添加了一个单击事件处理程序。在本地系统上,它按预期工作。但是当在服务器(我们有代码存储库)上生成构建时,我们注意到生成的构建有一个错误。错误是此控件每次都会生成两次单击事件。我们在事件处理函数中使用 OpenFileDialog 来浏览图像。我们注意到通过 VS 构建的本地系统使用 CSC.exe 进行构建,而在服务器上我们使用 MSBuild.exe。所以我们也尝试在本地系统上使用 MSBuild 进行构建。但是错误不会在本地系统上重现。使用 VS 在服务器系统上构建代码也不会重现该错误。因此,重现错误的唯一方法是在服务器上生成自动构建。我们已经尝试比较两个 dll(错误和非错误)的 IL 代码。我们检查了事件处理函数的 IL 代码。IL 代码是相同的。

我不怀疑我们的代码,因为该错误在任何情况下都不会在我们的本地系统上重现。如果您需要更多输入/详细信息,请告诉我。

任何帮助将不胜感激。

谢谢,米沙尔

4

2 回答 2

1

(VS 正在使用 MSBuild。)

在 VS 中,设置

Tools\Options\Project and Solutions\Build and Run\MSBuild 项目输出详细程度

'诊断',然后清理项目,构建它,并从输出窗口捕获日志。

与在服务器上运行的“msbuild.exe /v:diag ...”的输出进行比较。

希望这将找到差异的根源。

于 2010-07-01T05:37:15.017 回答
0

顺便说一句,这很容易“修复”(解决方法)。如果按钮的单击事件处理程序是从代码而不是从 XAML 添加的,则错误会消失:| 我相信这可能是 XAML 加载程序中的一些 MS 错误。我不确定其他人是否也遇到了这个问题,但我们在两个以上的地方都在积极面对这个错误。缺少的一个环节是在什么情况下会出现错误。到目前为止,我们只在按钮的情况下看到了这一点。不知道这还会出现在哪里

于 2010-07-20T13:00:12.313 回答