Microsoft.WITDataStore32.dll仅在类库输出类型中找不到异常



正在尝试使用Microsoft.TeamFoundationServer.ExtendedClient 15.112.1https://www.nuget.org/packages/Microsoft.TeamFoundationServer.ExtendedClient/

使用 Visual Studio 2017

控制台应用中的此代码工作正常:

string tfsUrl = "{{tfsurl}}";
string project = "{{project}}";
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(TfsTeamProjectCollection.GetFullyQualifiedUriForName(tfsUrl));
ITestManagementService tms = tfs.GetService<ITestManagementService>();
var proj = tms.GetTeamProject(project);

作为单元测试项目一部分的 TestMethod 中的此代码不会:

string tfsUrl = "{{tfsurl}}";
string project = "{{project}}";
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(TfsTeamProjectCollection.GetFullyQualifiedUriForName(tfsUrl));
ITestManagementService tms = tfs.GetService<ITestManagementService>();
var proj = tms.GetTeamProject(project);
Assert.IsNotNull(proj);

它会在tms.GetTeamProject(project)上抛出异常: System.DllNotFoundException:"无法加载 DLL 'Microsoft.WITDataStore32.dll":找不到指定的模块。(HRESULT的例外:0x8007007E)'

我尝试过的解决方案:

  • 将 WITDataStore32.dll 复制到 bin 目录

  • 将 WITDataStore32.dll 从packagesMicrosoft.TeamFoundationServer.ExtendedClient.15.112.1libnativex86文件夹复制到C:WindowsSystem32

  • 将 WITDataStore32.dll 从packagesMicrosoft.TeamFoundationServer.ExtendedClient.15.112.1libnativex86文件夹复制到C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDE文件夹中

  • 安装团队基础服务器 TFS 包并将 WITDataStore32.dll 从C:Program Files (x86)Microsoft Visual Studio2017TeamExplorerCommon7IDECommonExtensionsMicrosoftTeamFoundationTeam Explorer文件夹复制到C:Program Files (x86)Microsoft Visual Studio2017EnterpriseCommon7IDE文件夹中

到目前为止没有任何效果...

下面的完整堆栈转储:

Result StackTrace:  
at Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.DataStoreNative32.CreateDatastore(IntPtr& handle)
at Microsoft.TeamFoundation.WorkItemTracking.Client.DataStore.DataStoreNative.CreateDatastore(IntPtr& handle)
at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.InitializeInternal()
at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItemStore.Microsoft.TeamFoundation.Client.ITfsTeamProjectCollectionObject.Initialize(TfsTeamProjectCollection teamProjectCollection)
at Microsoft.TeamFoundation.Client.TfsTeamProjectCollection.InitializeTeamFoundationObject(String fullName, Object instance)
at Microsoft.TeamFoundation.Client.TfsConnection.CreateServiceInstance(Assembly assembly, String fullName)
at Microsoft.TeamFoundation.Client.TfsConnection.GetServiceInstance(Type serviceType, Object serviceInstance)
at Microsoft.TeamFoundation.Client.TfsTeamProjectCollection.GetServiceInstance(Type serviceType, Object serviceInstance)
at Microsoft.TeamFoundation.Client.TfsConnection.GetService(Type serviceType)
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementTeamProject.GetWitProject()
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementTeamProject.get_WitHelper()
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementTeamProject.get_SharedParameterDataSetWorkItemTypeName()
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementTeamProject.get_HasSupportForSharedParameterDataSets()
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementTeamProject..ctor(TestManagementService manager, String projectName)
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementService.<GetTeamProject>b__0_0(String name)
at Microsoft.TeamFoundation.TestManagement.Client.ObjectCache`2.Get(Key key, Creator creator)
at Microsoft.TeamFoundation.TestManagement.Client.TestManagementService.GetTeamProject(String projectName)
at CodedUITestProject1.CodedUITest1.CodedUITestMethod1() in c:usersmesourcereposCodedUITestProject1CodedUITestProject1CodedUITest1.cs:line 32
Result Message: 
Test method CodedUITestProject1.CodedUITest1.CodedUITestMethod1 threw exception: 
System.DllNotFoundException: Unable to load DLL 'Microsoft.WITDataStore32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

您还需要安装 Microsoft.TeamFoundationServer.Client

然后在创建安装程序时,您需要从输出目录中获取上面的文件,将其作为资源(始终复制)添加到您的文件中。否则,发布活动将无法识别它,因此执行将失败。

最新更新