首页 文章

使用NuGet包的项目包含在多个解决方案中

提问于
浏览
0

我正在寻找一种在多个visual studio解决方案中包含的项目中使用NuGet包的方法 .

示例:我有两个解决方案App1和App2都包含一个类库SharedProj . 结构如下所示:

├───App1
│   ├───App1
│   └───packages
│       └───NLog
├───App2
│   ├───App2
│   └───packages
│       └───NLog
└───SharedProj
    ├───packages.config

当我将软件包安装到SharedProj时,它会被添加到packages.config中 . 到现在为止还挺好…

问题是,软件包将被安装到开放解决方案的packages目录中 .

<Reference Include="Extend, Version=4.2.1, Culture=neutral, processorArchitecture=MSIL">
    <HintPath>..\App1\packages\NLog\lib\net45\NLog.dll</HintPath>
    <Private>True</Private>
</Reference>

例如,如果App1解决方案处于打开状态,则会将包添加到App1 \ packages中 . => App2解决方案中的项目引用App1解决方案中的包 . 这意味着在我恢复App1的软件包之前,我无法构建App2 .

如何让NuGet在这种情况下工作?

1 回答

  • 1

    修改此引用的HintPath以 $(SolutionDir) 而不是相对路径开头 . 这样,参考将与任何解决方案相关 .

    编辑:如果您不想在安装/更新每个NuGet包后更新您的csproj文件,您可以使用 repositoryPath 设置来设置每个解决方案中的包目录以解决此问题(stackoverflow.com/q/4092759/2336787)

相关问题