gpt4 book ai didi

visual-studio-2010 - NuGet 没有丢失包

转载 作者:行者123 更新时间:2023-12-04 18:44:13 24 4
gpt4 key购买 nike

我在 VSS 中有以下项目结构

enter image description here

现在在 Visual Studio 2010 专业版 :
我开解决方案2 然后添加 Library1 作为外部项目 .

Library1 引用了我通过 NuGet 获得的两个外部库。当我构建我的 Solution2 时,它一切正常。
所以我 checkin 了我所有的项目。

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

尝试以下:

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

所以现在我在 Solution2 下有 .nuget 文件夹,它被 checkin 。但这仍然没有带来dll。

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

任何想法如何通过 NuGet 自动获取丢失的包?

更新:
Xavier 的建议有所帮助,以下是他的两篇博文:

  • http://xavierdecoster.com/how-to-nuget-package-restore-when-sharing-projects-between-solutions
  • http://xavierdecoster.com/debugging-nuget-package-restore
  • 最佳答案

    使用当前设置,您应该确保已在 上启用 NuGet 包还原。两者 解决方案和 解决方案2 nuget.targets应该将 nuget install 命令指向 Solution1\Packages输出目录 .您的文件夹结构将如下所示:
    Folder structure
    原因:Library1.csproj 引用指向 Solution1\Packages 位置。将此项目添加到解决方案 2 时,项目引用不会更改,但解决方案将还原 Solution2\Packages 中的包,而不是 Solution1\Packages。
    如果您已经在 Solution2 的项目中安装了软件包,则需要确保这些软件包仍然针对 Solution2\Packages 进行还原。为此,我建议您在共享项目文件中设置 MSBuild 属性(在 nuget.targets 文件的导入语句上方),并将此 MSBuild 属性值传递到 RestoreCommand。
    例如。:

    <PackagesOutDir>$(SolutionDir)..\Libraries\Packages</PackagesOutDir>


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

    <PackagesOutDir Condition="$(PackagesOutDir) == ''">$(SolutionDir)\Packages</PackagesOutDir>

    ...

    <RestoreCommand>... -o "$(PackagesOutDir) "</RestoreCommand>



    可选 , 如果要使用单个 Packages 文件夹,可以修改 两者 .nuget\NuGet.targets文件并设置 -o (或 -OutputDirectory)开关 nuget install命令。
    将其附加到 RestoreCommand 元素: -o "$(SolutionDir..\Packages"将确保所有包在单个位置获得 恢复 :
    enter image description here
    请注意,每次安装 NuGet 包后,您都必须手动更新已安装的包引用!

    关于visual-studio-2010 - NuGet 没有丢失包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17797052/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com