gpt4 book ai didi

c# - 从变更集中读取工作项时出现 System.NullReferenceException

转载 作者:太空宇宙 更新时间:2023-11-03 11:24:19 24 4
gpt4 key购买 nike

我一直在用 c# 编写一个工具,该工具将生成关于特定日期之间与构建相关的变更集和工作项的 html 报告。该报告还包括使用此 question 中描述的方法的变更集和工作项的链接。 .当我运行该工具时,我没有遇到任何问题,但我已将其交给其他人进行测试,结果有些好坏参半。有些人能够毫无问题地运行该工具,但其他人在未安装 TFS 2010 的计算机上运行时会遇到错误。有问题的错误信息是

System.NullReferenceException: Object reference not set to an instance of an object at Microsoft.TeamFoundation.VersionControl.Client.Changeset.get_WorkItems()

通过在此类机器上进行测试,我发现我的工具可以毫无问题地连接到 TFS,也可以毫无问题地读取 Chageset 项,但是在获取与变更集关联的工作项的详细信息时,会出现错误。使工作项循环的代码是

WorkItem[] csWorkItems = changeSet.WorkItems;

我很困惑为什么这会在没有安装 TFS 2010 的机器上导致错误。另外,我查看了这些机器上的报告,变更集和工作项的链接工作正常!

任何人都可以告诉我这不起作用的原因以及如何修复它,或者给我一个替代方法来获取工作项对象而不会导致此错误?

最佳答案

这是我必须做的才能让它在类似于您的设置中工作...

首先,我将以下 dll 连同可执行文件一起部署到没有 TFS 的目标机器上:

Microsoft.TeamFoundation.Client.dll
Microsoft.TeamFoundation.Common.dll
Microsoft.TeamFoundation.Common.Library.dll
Microsoft.TeamFoundation.dll
Microsoft.TeamFoundation.VersionControl.Client.dll
Microsoft.TeamFoundation.VersionControl.Common.dll
Microsoft.TeamFoundation.VersionControl.Common.Integration.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.Cache.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.dll
Microsoft.TeamFoundation.WorkItemTracking.Client.RuleEngine.dll
Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll

然后(这是关键部分)我将以下部分添加到我的 App.config 文件中:

<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>

事实证明,其中一个 dll 依赖项未正确加载,但存在底层异常“混合模式程序集是针对运行时版本 'v2.0.50727' 构建的,如果没有额外的配置信息,则无法在 4.0 运行时中加载。”在我拆分 WorkItemStore 的声明之前一直对我隐藏。

在尝试解决此问题时归功于以下来源:

http://social.msdn.microsoft.com/Forums/is/tfsworkitemtracking/thread/dadb5406-d1fd-4078-83ce-4d8f8f07720b (对于建议单独声明单独的 WorkItemStore 的提示,这帮助我找到了实际的潜在错误)。

What 'additional configuration' is necessary to reference a .NET 2.0 mixed mode assembly in a .NET 4.0 project? (针对上述错误的解决方法)

关于c# - 从变更集中读取工作项时出现 System.NullReferenceException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9993914/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com