我在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文件中,我的restore命令如下:
<RestoreCommand>
$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) -OutputDirectory "$(MSBuildProjectDirectory)\..\packages"
</RestoreCommand>
构建SolutionAandB.sln时,OutputDirectory参数确保A和B的软件包安装在相应的trunk文件夹中。但是当我使用NuGet插件时,它显示没有安装任何软件包(即使它们在主干/软件包中正确安装)并说:
&#34;此解决方案中缺少某些NuGet包。点击恢复 来自您的在线软件包来源。&#34;
如果我单击该邮件的恢复,它会将所有软件包安装到src / packages,这不是所需的行为。
尝试添加新软件包(引用提示路径搞砸了)或使用插件更新现有内容时出现问题(已安装的软件包选项卡显示空列表)。
有没有办法告诉插件查看相应的trunk / packages文件夹而不是SolutionAandB.sln中的src / packages文件夹?
答案 0 :(得分:0)
我想,你自己过度劳累。在这里你应该做什么
/src
/.nuget
/packages
/SolutionForAllProjects.sln
/Project A
/.nuget
/ProjectA.csproj
/Project B
/.nuget
/ProjectB.csproj
在你的项目中nuget.config add
<config>
<add key="repositoryPath" value="..\packages" />
</config>
您可能需要重新添加引用或手动修复它们