相关疑难解决方法(0)

如何让NuGet安装/更新packages.config中的所有软件包?

我有一个包含多个项目的解决方案.大多数第三方引用都丢失了,但packages.config每个项目都有文件. 如何让NuGet安装/更新所需的所有软件包?这是否需要通过命令行为每个项目完成?

nuget

649
推荐指数
11
解决办法
52万
查看次数

防止需要将NuGet.exe添加到源代码管理

一些上下文:
我已经按照教程使用NuGet而没有提交包有一些成功.通过手动添加和为nuget.targets文件解决这个NuGet问题后,事情正在发挥作用.<RestorePackages><Import ...>

但是,一旦我用Mercurial克隆了存储库,我在构建时遇到以下错误:

无法找到'C:\ ...\Visual Studio 2010\Projects\MyProject\.nuget \nuget.exe'

这是有道理的,因为我的忽略模式阻止我检查exe文件.从这个相关的SO问题我推断出在版本控制中使用这个文件并不常见(或者是吗?),但是我真的不想将NuGet.exe提交给版本控制,如果我可以帮助的话.


问题:是否有方便的方法来防止需要检查NuGet.exe?


我尝试了一些谷歌,浏览文档,摆弄NuGet.targets文件,到目前为止没有运气.如果我可以动态地指向构建解决方案的特定环境的NuGet.exe似乎更可取.

我知道我可以添加exe文件,但我更愿意知道是否有其他方法来处理这个问题,或者知道为什么没有可行的替代方案.

更新:
nuget.targets文件包含一些相关的xml:

<!-- only (relevant) parts of the xml shown below -->
<DownloadNuGetExe Condition=" '$(DownloadNuGetExe)' == '' ">false</DownloadNuGetExe>
...
<UsingTask TaskName="DownloadNuGet" TaskFactory="CodeTaskFactory" AssemblyFile="$(MSBuildToolsPath)\Microsoft.Build.Tasks.v4.0.dll">
    <Task>
        <Code Type="Fragment" Language="cs">
        <![CDATA[
        try {
            OutputFilename = Path.GetFullPath(OutputFilename);

            Log.LogMessage("Downloading latest version of NuGet.exe...");
            WebClient webClient = new WebClient();
            webClient.DownloadFile("https://nuget.org/nuget.exe", OutputFilename);

            return true;
        }
        catch (Exception ex) {
            Log.LogErrorFromException(ex);
            return false;
        } …
Run Code Online (Sandbox Code Playgroud)

version-control visual-studio nuget

71
推荐指数
2
解决办法
3万
查看次数

标签 统计

nuget ×2

version-control ×1

visual-studio ×1