首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NuGet没有得到丢失的包

NuGet没有得到丢失的包
EN

Stack Overflow用户
提问于 2013-07-22 20:43:30
回答 2查看 6.7K关注 0票数 5

我在VSS中有以下项目结构

现在在Visual 2010 Pro:我打开Solution2,然后添加Library1作为外部项目

Library1引用了我通过NuGet获得的两个外部库。当我构建我的Solution2时,一切都很好。所以我登记了我所有的项目。

问题:当另一个开发人员从源代码中获取Solution2并进行构建时,它说Library1缺少了那些外部库dll。

尝试了以下几个方面:

1:http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

所以现在我有.nuget文件夹在Solution2下,它被签入。但那还是没能把他们带来。

我怀疑Library1在一个单独的解决方案中导致了这个问题。

知道如何通过NuGet自动获得丢失的包吗?

更新:

泽维尔的建议很有帮助,以下是他的两篇博文:

  • http://xavierdecoster.com/how-to-nuget-package-restore-when-sharing-projects-between-solutions
  • http://xavierdecoster.com/debugging-nuget-package-restore
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-23 07:29:58

使用当前的设置,您应该确保已经启用了上的NuGet包恢复--解决方案和 Solution2 应该将nuget安装命令指向 Solution1\Packages outputdirectory.您的文件夹结构如下所示:

原因: location 1.csproj引用指向解决方案1\Packages位置。当将此项目添加到Solution2时,项目引用不会更改,但是解决方案将恢复Solution2\Packages中的包而不是解决方案1\Package。

如果您已经在Solution2的项目中安装了包,则需要确保这些包仍然针对Solution2\Packages进行恢复。为此,我建议您在共享项目文件中设置一个MSBuild属性( nuget.targets文件的导入语句上方),并将这个MSBuild属性值传递给RestoreCommand。

例如:

$(SolutionDir)..\Libraries\Packages

并调整nuget.targets文件,例如:

$(SolutionDir)\包 ..。 . -o "$(PackagesOutDir)“

(),如果您想要使用单个软件包文件夹,可以修改和 .nuget\NuGet.targets文件,并为nuget install命令设置-o (或-OutputDirectory)开关。

将其附加到RestoreCommand元素:-o "$(SolutionDir..\ packages“)将确保所有包都在一个位置得到还原的:

注意,每次安装NuGet包后,您都必须手动更新已安装的包引用!

票数 5
EN

Stack Overflow用户

发布于 2017-05-18 13:36:30

查看我们的答案:Nuget Package restore with git submodule,此选项不涉及任何*.csproj操作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17797052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档