我得到了空的Class library
项目,并希望将以下NuGet安装为依赖项:
nuget-bot.Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.12.0.31101
安装失败,错误:
无法添加对“Microsoft.WITDataStore”的引用。
其他注意事项,例如Entity Framework
或Microsoft.TeamFoundation.Client
我能够安装。
我的配置
感谢。
答案 0 :(得分:7)
the NuGet package的配置似乎是错误的。
Microsoft.WITDataStore.dll
是一个非托管库,无法由.NET项目直接引用,这就是软件包安装失败的原因。
Microsoft.TeamFoundation.WorkItemTrackingClient.DataStoreLoader.dll
是一个.NET包装器库,允许访问Microsoft.WITDataStore.dll
中的非托管代码。 应该发生的是包应该添加.NET库(DataStoreLoader.dll
)作为程序集引用,并添加非托管库(WITDataStore.dll
)作为配置的内容项要在构建时复制到bin\
目录。相反,它试图将它们作为程序集引用添加,它们会失败并被NuGet回滚。
我使用过NuGet"联系所有者"尝试通知Microsoft的发布者该软件包的错误配置,但由于它已经由" nuget-bot"发布,我不知道这是否会完成任何东西。如果更新软件包以解决问题,我将更新此答案。 我目前使用的解决方法是:
packages\
目录中。Microsoft.TeamFoundation.WorkItemTrackingClient.DataStoreLoader.dll
副本。将文件WITDataStore.dll
作为现有文件添加到我的项目中,并将其标记为"始终复制"在"属性"。 ("复制如果更新"也可以正常工作)
将行<package id="nuget-bot.Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader" version="12.0.31101" targetFramework="net452" />
添加到我项目的packages.config
文件中。
这导致NuGet记录了正在安装的软件包,DataStoreLoader.dll
被引用,并且WITDataStore.dll
在您构建时被复制到bin\
文件夹中,因此它可以是由包装库使用。
答案 1 :(得分:0)
请使用NuGet官方套餐。我已将此blog post作为指南。我仍然希望取消非官方套餐。
答案 2 :(得分:0)
我已经解决了这个错误,只需将 Microsoft.WITDataStore.dll 复制到Microsoft Team Foundation packages文件夹即可。您可以在手动下载此软件包后复制此dll。
packages\Microsoft.TeamFoundation.11.0.0.0\lib\net20
希望这有助于你