nuget 还原后找不到文件

File was not found after nuget restore

我正在使用 Visual Studio 2017 并从 TFS 服务器拉取源代码,然后构建解决方案,我收到以下错误:

Microsoft.Common.CurrentVersion.targets (3863,5): Error MSB3113: The file "SqlServerTypes \ x64 \ SqlServerSpatial140.dll" was not found.

然后我发现这个dll文件来自nuget包sqlserver.types,据我所知,Visual Studio会在我们构建解决方案时恢复nuget包。

为什么我还有这个问题?

你可以试试这个:

Update-Package <package_name> –reinstall

File was not found after nuget restore

当您从 nuget.org 下载 nuget 包 Microsoft.SqlServer.Types 并使用 nuget 包资源管理器打开它时:

您会发现 sqlserver.types nuget 包不仅包括来自 .net 框架的 .dll,而且还有本地二进制文件。这些文件是用 x64 和 x84 设计的,它们不能直接添加到 lib 文件夹中。因此包所有者将它们作为内容添加到项目中。但是这些dll文件在TFS中默认设置为忽略,需要手动添加。

当然你也可以使用命令行Update-Package <package_name> –reinstall重新安装这个nuget包,但这需要你每次从TFS服务器拉取代码后都执行这个命令。将本机二进制文件添加到源代码管理中将减少这些不必要的麻烦。

希望对您有所帮助。