Visual studio 更改Visual Studio NuGet插件的包文件夹路径
我在svn中有以下目录结构:Visual studio 更改Visual Studio NuGet插件的包文件夹路径,visual-studio,nuget,nuget-package-restore,Visual Studio,Nuget,Nuget Package Restore,我在svn中有以下目录结构: /src /.nuget /SolutionAandB.sln /A /trunk /.nuget /ProjectA /ProjectA.csproj /packages.config /packages /SolutionA.sln /B /
/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,同时使我能够使用一个解决方案窗口(SolutionA和B.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>
$(NuGetCommand)安装“$(PackageConfig)”-源“$(PackageSources)”$(非交互式开关)$(RequiredSentSwitch)-solutionDir$(PaddedSolutionDir)-OutputDirectory“$(MSBuildProjectDirectory)\..\packages”
构建Solutiona和B.sln时,OutputDirectory参数确保A和B的包安装在各自的主干文件夹中。但是当我使用NuGet插件时,它显示没有安装任何软件包(即使它们正确安装在主干/软件包中),并显示:
“此解决方案中缺少某些NuGet软件包。单击以还原
从您的在线软件包来源。”
如果我在该消息上单击restore,它会将所有包安装到src/packages,这不是所需的行为
当尝试使用插件添加新软件包(参考提示路径混乱)或更新现有软件包(installed packages选项卡显示空列表)时,这是一个问题
有没有办法让插件查看相应的trunk/packages文件夹,而不是solutiona和b.sln中的src/packages文件夹?我想,你工作过度了。这是你应该做的
/src
/.nuget
/packages
/SolutionForAllProjects.sln
/Project A
/.nuget
/ProjectA.csproj
/Project B
/.nuget
/ProjectB.csproj
并在您的项目中添加nuget.config
<config>
<add key="repositoryPath" value="..\packages" />
</config>
您可能需要重新添加引用或手动修复它们我认为您工作过度了。这是你应该做的
/src
/.nuget
/packages
/SolutionForAllProjects.sln
/Project A
/.nuget
/ProjectA.csproj
/Project B
/.nuget
/ProjectB.csproj
并在您的项目中添加nuget.config
<config>
<add key="repositoryPath" value="..\packages" />
</config>
您可能需要重新添加引用或手动修复它们我考虑改用此结构,但这对分支不太有效。我们在从主干发布(Branchs/RC)之前创建一个RC分支,这将需要引用提示路径以及存储库路径,以便在每次创建分支时更新。@SiddharthShukramani在我的描述中,
src
下的所有内容都是一个产品,所有项目都属于它。你要么发布全部,要么什么都不发布。我们希望能够分别发布ProjectA和ProjectB。所有项目的解决方案主要是为了提高生产率。@SiddharthShukramani,好吧,再次强调,如果子文件夹中的任何内容都是您的可发布产品,那么应该将其作为一个单元来处理。若项目“A”和“B”有公共组件,那个么可以在“公共”解决方案中构建这些组件,并将其与第三方进行类似的处理。我经常看到的是,大多数有这些问题的人都试图“修复它”,而实际上,项目/解决方案/发布结构必须提前设计。我考虑过使用这种结构,但这种结构在分支机构中不太管用。我们在从主干发布(Branchs/RC)之前创建一个RC分支,这将需要引用提示路径以及存储库路径,以便在每次创建分支时更新。@SiddharthShukramani在我的描述中,src
下的所有内容都是一个产品,所有项目都属于它。你要么发布全部,要么什么都不发布。我们希望能够分别发布ProjectA和ProjectB。所有项目的解决方案主要是为了提高生产率。@SiddharthShukramani,好吧,再次强调,如果子文件夹中的任何内容都是您的可发布产品,那么应该将其作为一个单元来处理。若项目“A”和“B”有公共组件,那个么可以在“公共”解决方案中构建这些组件,并将其与第三方进行类似的处理。我经常看到,大多数有这些问题的人,试图“修复它”,而实际上,项目/解决方案/发布结构必须提前设计。