Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在将.nupkg文件签入源代码管理-如何在生成时恢复?_C#_.net_Nuget_Projects And Solutions_Nuget Package Restore - Fatal编程技术网

C# 正在将.nupkg文件签入源代码管理-如何在生成时恢复?

C# 正在将.nupkg文件签入源代码管理-如何在生成时恢复?,c#,.net,nuget,projects-and-solutions,nuget-package-restore,C#,.net,Nuget,Projects And Solutions,Nuget Package Restore,好的,我想在源代码管理中检查我的依赖项。很多人会因为各种原因反对这一点,但这不是我在这个问题中要寻找的 请接受我的要求,即我希望在源代码管理中使用依赖项 我正在使用NuGet软件包,因此在解决方案的根目录中有一个packages文件夹。包中的每个文件夹都包含.nupkg文件以及该包的提取内容(二进制文件、xml等) 由于.nupkg文件是包的压缩内容,因此我没有理由将其与解压缩内容一起签入。我只想签入.nupkg文件,并在构建过程中恢复它们。这就是问题所在。还原时,NuGet只检查是否存在.nu

好的,我想在源代码管理中检查我的依赖项。很多人会因为各种原因反对这一点,但这不是我在这个问题中要寻找的

请接受我的要求,即我希望在源代码管理中使用依赖项

我正在使用NuGet软件包,因此在解决方案的根目录中有一个
packages
文件夹。包中的每个文件夹都包含
.nupkg
文件以及该包的提取内容(二进制文件、xml等)

由于
.nupkg
文件是包的压缩内容,因此我没有理由将其与解压缩内容一起签入。我只想签入
.nupkg
文件,并在构建过程中恢复它们。这就是问题所在。还原时,NuGet只检查是否存在
.nupkg
文件,如果找到该文件,则表明该软件包已安装,但不会将其解压缩

我发现解压这些文件的唯一方法是运行
nuget.exe install
,指定特定项目的
packages.config
文件,并使用选项
-OutputDirectory{solutionDir}\packages

e、 g

nuget.exe安装{solutionDir}\{projectDir}\packages.config-OutputDirectory{solutionDir}\packages

但这只适用于项目级别,而不是解决方案级别。因此,我必须为解决方案中的每个项目创建一个脚本

我很想依赖
nuget.exe restore MySolution.sln
,但它会检测
.nupkg
文件,而不会解压它们


.nupkg
文件存在但未解压缩时,是否有人有更简单的方法还原解决方案的所有NuGet软件包?

如果不想从internet下载NuGet软件包,只需将其添加到名为NuGet\u repo的单独文件夹中,并在NuGet.config文件中将此文件夹注册为。将nuget_repo文件夹和nuget.config与源代码一起检查到源代码管理中。

I您必须编写脚本或控制台应用程序才能找到所有的nupkg文件并将其解压缩。@jrummell nuget restore不这样做似乎很奇怪。我觉得有一个选择,我只是错过了这将做到这一点。感觉就像是因为我想将依赖项检查到源代码管理中,所以我必须添加两次,在nupkg文件中压缩,以及未压缩的内容。一定是其他人遇到了这个问题?嗯,nuget真的希望这样使用。你可以尝试联系nuget团队,并将此作为功能请求提出建议。为什么这被否决了??这是一个合理的问题。默认情况下,VisualStudio将把所有
文件夹内容粘贴到源代码管理中,DLL除外。我不会认为这对人们来说是一件不寻常的事情,必须手动修复…这个小宝石“NuGet在恢复时只检查.nupkg文件的存在,如果发现说包已经安装了,它不会解包。”对我很有用,所以请对此部分投赞成票。:-)