2012-11-21 4 views
3

우리 저장소에 packages 폴더를 위탁하지 않습니다. 또한, 오히려 (이 빌드 시간을 늘릴 수 있기 때문에) 빌드시에 패키지를 복원하는 것보다, 우리는 우리가/체크 아웃을 신선한 저장소를 복제 할 때 다음 PowerShell을 모듈과 패키지를 복원커맨드 라인을 통해 패키지를 복원 할 때 왜 Nuget이 무작위로 충돌합니까?

$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 

이 좋은 작품을 ...하지만 수 무작위로 아니요 작동! 경우에 따라 모든 패키지가 올바르게로드되고 다른 시간에 임의로package.config 크래시 Nuget!

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> 

을이 자동으로 실패하기 때문에, 다른 package.config들 또는 1가 충돌 한 후 실행되지 않을 수 있습니다 (너무 충돌이 있었다!).

나는 컴퓨터를 여러 번 재부팅하고 Nuget 캐시를 지웠지만 아무 소용이 없습니다. 내 컴퓨터에 문제가 있습니까? 그것 Nuget인가?

감사합니다.

답변

0

스크립트를 실행 해 보았지만 제대로 작동했습니다. 내가 시도해 볼 수도있는 한 가지는 새로운 다운로드로 nuget.exe를 대체하는 것입니다. http://nuget.org/nuget.exe

명령 줄에서 직접 실행하면 nuget.exe가 충돌하는 경우가 있습니다.

희망이 있습니다.

+0

사용해 주셔서 감사합니다. 이상한 점은 나에게도 효과가 있다는 것입니다 ...하지만 때때로 실패합니다! 이벤트 로그의 오류는 찾을 수없는 유일한 오류입니다. 그러나 때로는 완전히 정상적으로 실행됩니다. – TheCloudlessSky

관련 문제