【问题标题】:Nuget restore for dependent projects依赖项目的 Nuget 还原
【发布时间】:2018-01-31 18:00:26
【问题描述】:

我在多个解决方案和不同目录级别中添加了多个项目。我使用 packages.config 来维护依赖项列表。 在通过命令行对解决方案进行 nuget 还原时,会在与解决方案文件相同的目录中创建包文件夹,并下载所有依赖项。现在添加了一些项目作为参考,这些项目也存在于其他解决方案中。所以项目引用不同的包文件夹。恢复时仅创建 1 个包文件夹,因此某些项目引用其他位置的包,请勿恢复其包。

有什么方法可以获取不同目录下多个包文件夹中的所有依赖项?

【问题讨论】:

    标签: nuget


    【解决方案1】:

    您可以使用覆盖默认行为的repositoryPath 创建 NuGet.Config 文件。

    <configuration>
        <config>
            <add key="repositoryPath" value="packages" />
        </config>
    </configuration>
    

    路径相对于 NuGet.Config 文件所在的目录。

    请注意,NuGet.Config 文件的位置应位于与解决方案相同或之上的目录中。虽然您可以拥有多个 NuGet.Config 文件,但在解决方案的根目录中拥有一个可能会更简单。例如:

    • /Your/Projects/Test/NuGet.Config
    • /Your/Projects/Test/MySolution.sln
    • /Your/Projects/Test/Another/MySolution2.sln

    另请注意,您需要在项目中重新安装 NuGet 包,或者至少修复引用路径,因为它们现在将使用不同的包目录并且不正确。

    【讨论】:

    • 这非常有效。现在这已与 Jenkins 集成,并且不考虑 repo 路径。软件包是在解决方案级别下载的,而不是在 repo 路径上。 @Matt 你有这方面的信息吗?谢谢。
    • 不确定是什么问题。如果构建服务器使用 NuGet 来恢复解决方案,那么它应该找到 NuGet.Config 文件(如果您在解决方案的目录中有它)。如果您将其放入用户配置文件的 NuGet.Config 文件 (~/.config/NuGet/NuGet.Config),那么我会移动该文件,使其与源代码保持一致。
    猜你喜欢
    • 2018-07-11
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 2017-10-04
    • 1970-01-01
    相关资源
    最近更新 更多