【发布时间】:2015-07-04 02:51:56
【问题描述】:
我在svn中有如下目录结构:
/src
/.nuget
/SolutionAandB.sln
/A
/trunk
/.nuget
/ProjectA
/ProjectA.csproj
/packages.config
/packages
/SolutionA.sln
/B
/trunk
/.nuget
/ProjectB
/ProjectB.csproj
/packages.config
/packages
/SolutionB.sln
这使我可以分别部署 A 和 B,同时让我能够使用一个解决方案窗口 (SolutionAandB.sln) 同时处理 A 和 B,而不必同时打开 SolutionA.sln 和 SolutionB.sln。
在 src/.nuget/NuGet.targets 文件中,我的恢复命令如下:
<RestoreCommand>
$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) -OutputDirectory "$(MSBuildProjectDirectory)\..\packages"
</RestoreCommand>
在构建 SolutionAandB.sln 时,OutputDirectory 参数确保 A 和 B 的包安装在各自的主干文件夹中。但是当我使用 NuGet 插件时,它显示没有安装任何包(即使它们已正确安装在主干/包中)并说:
“此解决方案中缺少一些 NuGet 包。单击以恢复 来自您的在线软件包来源。”
如果我在该消息上单击恢复,它会将所有软件包安装到 src/packages,这不是所需的行为。
这是尝试添加新包(参考提示路径混乱)或使用插件更新现有包(已安装包选项卡显示一个空列表)时出现的问题。
有没有办法让插件查看各自的 trunk/packages 文件夹,而不是 SolutionAandB.sln 中的 src/packages 文件夹?
【问题讨论】:
标签: visual-studio nuget nuget-package-restore