.net 为什么Nuget在通过命令行恢复包时会随机崩溃?

.net 为什么Nuget在通过命令行恢复包时会随机崩溃?,.net,powershell,clr,nuget,.net,Powershell,Clr,Nuget,我们不会将包文件夹提交到我们的存储库。此外,我们在克隆/签出新存储库时使用以下PowerShell模块还原包,而不是在生成时还原包(因为这会增加生成时间): $rootDir = resolve-path "$PSScriptRoot\.." $nugetRoot = "$rootDir\.nuget" $env:path += ";$nugetRoot" function Restore-Packages() { $packageSources = @( "$nu

我们不会将
文件夹提交到我们的存储库。此外,我们在克隆/签出新存储库时使用以下PowerShell模块还原包,而不是在生成时还原包(因为这会增加生成时间):

$rootDir = resolve-path "$PSScriptRoot\.."
$nugetRoot = "$rootDir\.nuget"

$env:path += ";$nugetRoot"

function Restore-Packages() {

    $packageSources = @(
        "$nugetRoot",
        "$rootDir/db",
        "$rootDir/src",
        "$rootDir/test"
    )

    $packageSources | dir -r -include "packages.config" | % {
        $configPath = $_.FullName

        $configName = $configPath.Replace($rootDir.ToString() + "\", "")

        write-host "Installing packages for " -n
        write-host "$configName" -f "white"

        nuget install "$configPath" -solutionDir "$rootDir"
    }
}

Export-ModuleMember Restore-Packages
这很有效。。。但不能随意工作!有时,所有包都正确加载,而另一些时候,random
package.config
文件会崩溃

控制台上没有打印错误消息(即使在nuget.exe上有
-verbosity detailed
开关)。但是,我确实发现事件日志收到了一条错误消息:

Log Name:      Application
Source:        Application Error
Date:          11/21/2012 9:21:42 AM
Event ID:      1000
Task Category: (100)
Level:         Error
Keywords:      Classic
User:          N/A
Description:
Faulting application name: NuGet.exe, version: 2.1.31022.9038, time stamp: 0x50856393
Faulting module name: clr.dll, version: 4.0.30319.239, time stamp: 0x4e181a6d
Exception code: 0xc0000005
Fault offset: 0x0035612d
Faulting process id: 0x408
Faulting application start time: 0x01cdc7eb24bed690
Faulting application path: D:\path\to\app\.nuget\NuGet.exe
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Report Id: 63343f50-33de-11e2-b0e1-005056c00008
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="Application Error" />
    <EventID Qualifiers="0">1000</EventID>
    <Level>2</Level>
    <Task>100</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-11-21T13:21:42.000000000Z" />
    <EventRecordID>77009</EventRecordID>
    <Channel>Application</Channel>
    <Security />
  </System>
  <EventData>
    <Data>NuGet.exe</Data>
    <Data>2.1.31022.9038</Data>
    <Data>50856393</Data>
    <Data>clr.dll</Data>
    <Data>4.0.30319.239</Data>
    <Data>4e181a6d</Data>
    <Data>c0000005</Data>
    <Data>0035612d</Data>
    <Data>408</Data>
    <Data>01cdc7eb24bed690</Data>
    <Data>D:\path\to\app\.nuget\NuGet.exe</Data>
    <Data>C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll</Data>
    <Data>63343f50-33de-11e2-b0e1-005056c00008</Data>
  </EventData>
</Event>
日志名称:应用程序
来源:应用程序错误
日期:2012年11月21日上午9:21:42
事件编号:1000
任务类别:(100)
级别:错误
关键词:经典
用户:不适用
说明:
出错应用程序名称:NuGet.exe,版本:2.1.31022.9038,时间戳:0x50856393
故障模块名称:clr.dll,版本:4.0.30319.239,时间戳:0x4e181a6d
异常代码:0xc0000005
故障偏移量:0x0035612d
出错进程id:0x408
故障应用程序启动时间:0x01cdc7eb24bed690
出现故障的应用程序路径:D:\path\to\app\.nuget\nuget.exe
故障模块路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
报告Id:63343f50-33de-11e2-b0e1-005056c00008
事件Xml:
1000
2.
100
0x8000000000000
77009
应用
NuGet.exe
2.1.31022.9038
50856393
clr.dll
4.0.30319.239
4e181a6d
c0000005
0035612d
408
01cdc7eb24bed690
D:\path\to\app\.nuget\nuget.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
63343f50-33de-11e2-b0e1-005056c00008
因为这会悄悄地失败,所以其他
package.config
s可能会在某个崩溃后运行,也可能不会运行(它也可能崩溃!)

我已经多次重新启动计算机并清除Nuget缓存,但都没有用。这是我的机器的问题吗?是努吉吗


谢谢

我试着运行你的脚本,它对我很好。我可以尝试的一件事是用新下载的

我想尝试的另一件事是,如果直接从命令行运行,numget.exe是否会崩溃


希望有帮助。

谢谢您的尝试。所以奇怪的是,它对我也有效。。。但有时会失败!事件日志中的错误是我能找到的唯一失败错误。然而,有时它运行完全正常。