我得到空Class library
项目,并希望安装以下NuGet作为依赖:
nuget-bot.Microsoft.TeamFoundation.WorkItemTracking.Client.DataStoreLoader.12.0.31101
安装失败,错误:
无法添加对"Microsoft.WITDataStore"的引用.
其他的例子,Entity Framework
或者Microsoft.TeamFoundation.Client
我能够安装.
我的配置
Windows 7企业版
Visual Studio Enterprise 2015
适用于Visual Studio 2015的NuGet包管理器
谢谢.
看起来这是NuGet包配置中的一个错误.
Microsoft.WITDataStore.dll
是一个无法由.NET项目直接引用的非托管库,这就是软件包安装失败的原因.
这Microsoft.TeamFoundation.WorkItemTrackingClient.DataStoreLoader.dll
是一个.NET包装器库,允许访问非托管代码 Microsoft.WITDataStore.dll
.什么应该被发生的是,包应该添加.NET库(DataStoreLoader.dll
作为一个组件参考),并添加非托管库(WITDataStore.dll
)的配置被复制到一个内容项目bin\
的build目录.相反,它试图将它们作为程序集引用添加,它们失败并由NuGet回滚.
我已经使用NuGet的"联系所有者"功能尝试通知Microsoft的发布者包的配置错误,但由于它是由"nuget-bot"发布的,我不知道这是否会完成任何事情.如果更新软件包以解决问题,我将更新此答案.我目前使用的解决方法是:
手动下载软件包,解压缩,然后将解压缩的文件夹复制到我的解决方案packages\
目录中.
将我的项目中的引用添加到Microsoft.TeamFoundation.WorkItemTrackingClient.DataStoreLoader.dll
解压缩包中的副本.
将文件WITDataStore.dll
作为现有文件添加到我的项目中,并在"属性"下将其标记为"始终复制".("如果更新则复制"也可以正常工作)
将该行添加
到packages.config
我的项目的文件中.
这会导致NuGet记录正在安装的软件包,DataStoreLoader.dll
被引用的软件包,以及在构建时将WITDataStore.dll
其复制到您的bin\
文件夹中,因此它可以被包装器库使用.