NuGet 패키지가 없습니다


297

이 문제를 검색했지만 해결책이 없습니다. Visual Studio Professional 2015가 설치되어 있고 TFS를 사용하고 있습니다. 내 NuGet 버전은 3.1.6입니다. 이 문제는 C # Web API / MVC 프로젝트에서만 발생합니다.

아래 오류가 발생합니다.

이 프로젝트는이 컴퓨터에없는 NuGet 패키지를 참조합니다. NuGet Package Restore를 사용하여 다운로드하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오 . 누락 된 파일은 .. \ packages \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props입니다.

  1. 내 솔루션에 .nuget 폴더가 없습니다.
  2. 솔루션에 패키지 폴더가 있고 삭제하면 NuGet이 종속성을 다시 작성하는 것처럼 보이지만 프로젝트에는 여전히 위의 오류가 있습니다.
  3. TFS에서 프로젝트를 제거하려고 시도했지만 문제가 해결되지 않았습니다.
  4. 위의 오류와 함께 프로젝트의 모든 참조에는 노란색 경고 표시가 있으며 누락되었다고 말합니다.
  5. 프로젝트의 NuGet Package Manager를 확인하면 "누락 된"모든 항목 옆에 Microsoft.Net.Compilers를 포함한 녹색 체크 표시가 나타납니다.
  6. 새 웹 API / MVC 프로젝트를 추가하려고 시도했는데 Owin과 같은 대부분의 참조가 노란색 경고 표시와 함께 "누락"되는 비슷한 문제에 직면했습니다.

새로운 사용자가 게시 한 저품질의 답변으로 인해이 질문을 마무리하기 위해 투표합니다.
ZF007

답변:


265

오늘 같은 오류가 발생했습니다 (정확히 동일한 패키지 누락). 또한 MVC + Web API 프로젝트를 만들었습니다.

앱 파일 (.csproj 포함) 파일을 다른 위치로 옮겼 기 때문에 발생했습니다. .sln 파일을 수동으로 업데이트했지만 모든 패키지 종속성이 .csproj 파일에 저장되었습니다 (Visual Studio 2015).

.csproj 파일을 편집하고 솔루션 폴더 (패키지 폴더 포함)의 상대 경로를 수정하면 문제가 해결되었습니다.


2
누락 된 경우 이동 후 이전 패키지 폴더에서 새 패키지 위치로 Microsoft.Net.Compilers ... 폴더를 복사하는 것이 마지막 단계 일 수 있습니다.
저스틴 Wignall

2
방금 컴퓨터에서 하나의 패키지를 제거하고 작동했습니다.
SpoiledTechie.com

1
Visual Studio 솔루션에서 프로젝트를 다른 위치로 실제로 이동할 때 오류가 발생했습니다. 이 페이지의 어떤 해결책도 효과가 없었으므로 (파일 시스템에서) 프로젝트의 사본을 만들고 VS의 원래 프로젝트에 대한 모든 참조를 완전히 제거했습니다. 그런 다음 프로젝트를 다시 만들고 비트와 조각을 (사본에서) 복사했습니다. 힘들지만 작동했습니다.
앤드류 젠스

2
또한 한 위치에서 다른 위치로 프로젝트를 옮긴 후에도 같은 문제가 발생했습니다. ".csproj"파일의 패키지 경로를 수정하면 문제가 해결되었습니다.
Nirman

2
@ MiłoszWieczorek 패키지 관리자 콘솔에서 명령을 실행하려고 시도했지만 문제가 해결되지 않았습니다. 모든 패키지를 다시로드했지만 참조를 찾을 수 없습니다.
Francisco d' Anconia

360

.csproj파일 에서이 코드를 제거하여 문제를 해결했습니다 .

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  <PropertyGroup>
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
  </PropertyGroup>
  <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>

5
여러 개의 개별 솔루션에서 프로젝트를 참조하고 있으므로 허용 된 답변이 작동하지 않습니다. 이것이 유일한 해결책이었습니다. 그것을 주석 처리했으며 매력처럼 작동했습니다.
Levi Fuller

31
나는 틀릴 수 있지만 이것이 "망치로 날아 다니는 것"이라고 생각합니다. 어떤 이유로 든 게시 된 위치에서 다른 필요한 너겟 패키지를 잃어버린 경우 오류가 발생 하지 않고 잘못된 긍정을 나타냅니다 (즉, 배치는 성공하지만 시스템은 실패). 팬은 아니지만 여전히 익숙하지 않은 너겟의 측면이 있기 때문에 공감하지 않을 것입니다.
HeyZiko

4
이것은 또한 나를 위해 일했습니다. 오류 메시지가 proj 파일 자체에 하드 코딩되어 있다는 것은 이상합니다.
Ryan Peters

7
이 문제는 여전히 VS 2017에 존재 함을 확인했습니다. Visual Studio 2015에서 2017로 프로젝트를 마이그레이션했으며 2017 년 처음 컴파일 할 때이 오류 메시지가 표시되었습니다.이 버그를 수정했습니다.
Tom McDonald

2
이 기능을 사용하여 기능을 삭제하고 프로젝트를 중단시킬 위험이있는 이유는 무엇입니까? @HeyZiko가 지적했듯이 나중에 문제가 발생할 수 있습니다. "패키지 복원 사용"오류가 표시되는 작업을 수행 할 수 있습니다. 이 페이지 어딘가에 내 대답을 참조하십시오 ...
Nicow

45

주의-이것은 프로젝트뿐만 아니라 전체 솔루션의 패키지를 업데이트합니다.

솔루션을 빌드하는 동안 오류를 발생시키는 누락 된 nuget 패키지가 하나 더 있으면 도구> Nuget 패키지 관리자> 패키지 관리자 콘솔에서 Nuget 명령 콘솔을 사용하여 다음 명령을 사용하십시오. 모든 현재 패키지가 다시 설치됩니다.

Update-Package –reinstall

최신 정보:

특정 프로젝트 이름을 매개 변수로 전달할 수 있습니다.

Update-Package –reinstall -ProjectName SampleApp

1
이것은 나를 위해 일했습니다. 한 시스템에서 git을 통해 변경 사항을 푸시하고 다른 시스템에서 변경 사항을 가져온 후 오류가 발생했습니다. 아마 내 .gitignore가 nuget 패키지에 대해 올바르게 구성되어 있지 않을 수 있습니다.
Patrick Borkowicz

16
주의 ... 이것은 프로젝트뿐만 아니라 전체 솔루션의 패키지를 업데이트합니다.
SO 사용자

1
이것은 나를 위해 일했습니다. NuGet은 패키지 누락에 대해 계속 불평했지만 Visual Studio는 자동 해결되지 않습니다. 완전히 실행하는 데 몇 분이 걸렸지 만이 명령으로 문제가 해결되었습니다.
Nick Alexander

8
-ProjectName 매개 변수를 추가하여 전체 솔루션이 아닌 특정 프로젝트에만 사용할 수 있습니다.
Miłosz Wieczorek 17 년

2
VS2017은이 과정에서 절반의 추락을 겪고 모든 것을 돌파했습니다.

19

나는이 실망스러운 메시지를 받았다. 마침내 나를 위해 일한 것은 / packages 내의 모든 파일과 폴더를 삭제하고 VS가 다음 빌드에서 모든 것을 다시 가져올 수있게하는 것이 었습니다.


2
솔루션 및을 마우스 오른쪽 버튼으로 클릭했습니다 Restore Nuget Packages.
Vitor Canova

1
솔루션을 마우스 오른쪽 버튼으로 클릭하면 Restore Nuget Package가 없습니다 .... VS 2013을 사용하고 있습니다.
Ziggler

또한 올바른 패키지로 복원해야합니다. 패키지 폴더의 위치를 ​​위해 note / Edit * .csproj를 사용하여 .csproj를 확인하십시오
AceMark

15

티 베리 우가 맞습니다. 파일이 이동 되어이 문제가 발생했을 때 .csproj 파일을 편집해야했습니다.

 <Import Project="..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

파일 상단과 하단에서 변경했습니다.

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.1\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />

결국 나를 위해 일한 것은 파일 끝의 줄만 편집하는 것이지 맨 위는 편집하지 않는 것입니다.
ISAE

15

이 방법으로 내 오류를 해결했습니다. Visual Studio 2015 이상 솔루션 탐색기에서 업데이트를 위해 .csproj 파일을 열려면 :

프로젝트 이름을 마우스 오른쪽 버튼으로 클릭-> 프로젝트 언로드

프로젝트 이름을 마우스 오른쪽 버튼으로 클릭-> .csproj 편집

다음 줄을 제거하십시오.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
    <Error Condition="!Exists('packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props'))" />
    <Error Condition="!Exists('packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', 'packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />
  </Target>

프로젝트 이름을 마우스 오른쪽 버튼으로 클릭-> 프로젝트 다시로드

마지막으로 솔루션을 구축하십시오.


csproj의 경로를 수동으로 수정 한 후 VerifyNuGetPackageBuildImports 섹션을 제거하고 완벽하게 작동했습니다. 감사합니다
willyMon

11

.csproj 파일에서 다음 코드를 제거 하여이 문제를 해결했습니다.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
  <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\Assemblies\NuGet\SpecFlow.Plus.Excel.1.4.2\build\SpecFlow.Plus.Excel.targets'))" />


1
그러나 왜 처음에 이러한 문제가 발생합니까? Visual Studio의 버그?
수호자 1

8

두 답변의 조합이 저에게 효과적이었습니다. 먼저 .csproj 파일을 수정하여 1.0.0 버전에 대한 참조를 제거했습니다.

< Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild" >

  ----Error---

< /Target>

그리고 나서

Update-Package -Reinstall

에서 작동했습니다.


6

나에게 문제는 솔루션을 새 폴더에 복사하여 열었을 때 아래와 같이 Nuget 폴더가 누락되었다는 것입니다. 이 폴더를 복사하고 모든 것이 작동했습니다. 참고 :이 동일한 폴더는 소스 제어에 있었지만이 솔루션 프로젝트에는 없었으며 하나의 디렉토리였습니다.

여기에 이미지 설명을 입력하십시오


6

NuGet 패키지 복원 만 활성화하십시오. 솔루션을 마우스 오른쪽 단추로 클릭하고 'NuGet 패키지 복원 사용'을 선택하십시오.

솔루션을 마우스 오른쪽 버튼으로 클릭하고 'NuGet 패키지 복원 사용'을 선택하십시오.

NuGet.Config 파일을 사용하여 .nuget 폴더를 만들고 문제를 해결했습니다.


감사!! 나도 비슷한 상황에 직면했으며 'NuGet 패키지 복원 사용'이 작동했습니다.
자인 프린스

18
"모든 패키지가 이미 설치되어 있으며 복원 할 것이 없습니다"라고 말합니다.
Dalibor

5

VS2012를 사용하고 있으며 동일한 오류가 발생합니다. .csproj 파일에서 다음 대상 태그를 제거하고 오류없이 컴파일을 시작했습니다.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
  -- Error messages within Target Tag
</Target>

5

여기에 몇 가지 답변을 확장하려면 .csproj 파일에서 다음 블록을 제거하십시오.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

이 문제를 해결하지만 제 경우에는 다른 버전의 .NET.Compilers 및 .CodeDom.Providers에 대한 추가 참조가 있음을 알았습니다.

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.0.0
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.2.0.1
<Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.3\

내 packages.config가 다음을 참조했을 때 :

<package id="Microsoft.Net.Compilers" version="2.0.1"
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3"

.csproj 파일에서 1.0.0 항목을 제거하면 문제가 해결되었습니다.


2

내가 가진 문제 (빌드 서버에서 복원되는 패키지는 아니지만 일부)로 인해 우연히 만난 사람은 나를 위해 퍼즐의 마지막 부분이 내 솔루션의 루트에 NuGet.config를 추가하여 .SLN의 형제였습니다. David Ebbo 파일은 여기에 설명되어 있습니다 : http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .

Ebbo의 블로그 게시물에서 저의 파일 내용은 간단합니다.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
  </packageSources>
</configuration>

최신 정보:

NuGet API URL이 v3에 대해 변경되었습니다 (2016 년 9 월 현재). 에서 https://www.nuget.org/

<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />

1

오류 메시지가 완전히 맞습니다. 나는 모든 트릭을 시도했지만 아무도 효과가 없었습니다. 프로젝트 (간단한 MVC 웹 앱 테스트)는 Windows 8.1 VS 2015 Community에서 Windows 10의 새로운 테스트 상자로 이동했습니다. VS 2015에 대한 모든 최신 업데이트가 적용되었습니다. 최신 버전의 컴파일러 패키지를 설치할 수도 없었습니다.

Loop:
<LOOP>This seems to be a Ground Hog Day phenomena.</LOOP>
GoTo Loop

마지막으로 이전 프로젝트의 Microsoft.Net.Compilers.1.0.0을 새 프로젝트로 복사하여 작동했습니다. 그런 다음 다른 패키지를 최신 버전으로 업데이트 할 수 있습니다. 나에게 nuget 프로젝트 업그레이드 프로세스 버그처럼 보입니다.

참고 : 원래 프로젝트는 VS 2015에서 작성되었으며 레거시 너겟 방법이 없습니다.


1

내 경우에 작동하는 솔루션-Visual Studio 2015 Enterprice, project .NET 4.6.1

  1. 업데이트 3으로 업그레이드
  2. 웹 개발자 도구 설치

비주얼 스튜디오 설치 마법사


1

나에게 패키지는 올바른 경로에 있었지만 패키지 폴더 안의 빌드 폴더는 그렇지 않았습니다. 나는 단순히 누락되었다고 말한 모든 패키지를 제거하고 솔루션을 다시 작성했으며 빌드 폴더와 .props 파일을 성공적으로 만들었습니다. 따라서 오류 메시지가 잘못되어 무언가를 놓쳤다는 것을 알려주었습니다.


1

Git에서 배포 할 때 Azure에서 실패한 빌드 로이 문제가 발생했습니다.

내 .gitignore가에서 build폴더를 제외했다는 것이 밝혀졌습니다 ..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props.

일단 build폴더 힘내하기 위해 최선을 다하고 (힘)이고,이 문제는 해결되었다.


1

다음 단계로 같은 문제를 해결했습니다.

  1. <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />package.config 파일에서 패키지를 제거했습니다 .
  2. .csproj 프로젝트 파일을 편집하고 아래 설정을 제거하십시오. <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">     <PropertyGroup>       <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>     </PropertyGroup>     <Error Condition="!Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" />   </Target>

    1. 패키지 관리자 콘솔로 이동하여 명령을 실행하십시오. Update-Package –reinstall

포인트 2와 3은 다른 사용자들에 의해 주어졌으며 그 사용자들에게 감사합니다. 포인트 # 1,Microsoft.CodeDom.Providers.DotNetCompilerPlatform . package.config 파일에서 것이 더 중요합니다. 또한 포인트 3에서 언급 한 명령을 실행 한 후 문제가 해결되었습니다. 원치 않는 모든 패키지가 제거되고 필요한 패키지 참조가 업데이트되었습니다.

이것이 누군가를 돕기를 바랍니다.


0

이에 대한 해결책을 찾을 수 없으므로 nuget.exe 및 powershell 스크립트 사본을 prebuild.ps1 솔루션의 루트 디렉토리에 다음 내용으로 추가했습니다.

$nugetexe = 'nuget.exe'
$args = 'restore SOLUTION_NAME_HERE.sln'
Start-Process $nugetexe -ArgumentList $args

빌드 전 스크립트 경로의 빌드 에서이 powershell 스크립트를 호출했습니다. 여기에 이미지 설명을 입력하십시오


0

솔루션 파일 및 프로젝트 폴더와 함께 패키지 폴더를 복사했을 때 광산이 일했습니다. 방금 이전 위치에서 패키지 폴더를 복사하지 않았습니다.


0

제안 된 오류 메시지를 힌트로 사용할 수도 있습니다. 솔루션 패키지 관리를 찾아 누락 된 nuget 패키지 해결을 클릭하는 방법은 다음과 같습니다.

그게 다야


0

다음에서 컴파일러 옵션에 주석을 답니다 WebConfig.

<!--<system.codedom>
<compilers>
  <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:6 /nowarn:1659;1699;1701" />
  <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />
</compilers>
</system.codedom>-->

패키지 구성 파일에서 최신 버전의 패키지 업데이트

  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.4" targetFramework="net452" />

계속 진행할 필요가 없으면 다시 빌드하십시오. 그렇지 않으면 프로젝트를 마우스 오른쪽 단추로 클릭하고 '프로젝트 언로드'를 클릭하십시오. 프로젝트를 다시 마우스 오른쪽 단추로 클릭하고 .csproj 파일을 편집하십시오.

Codedom의 경로를 확인하십시오. 이전 경로에는 net45가 없었으며 수동으로 추가하고 저장하고로드하고 다시 작성하십시오. 작동해야합니다.

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.4\build\net45\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />

0

많은 사람들이 <Target>태그를 제거하면 컴파일 할 수 있다고 제안합니다 . 그러나 테스트 프로젝트를 수행 할 때 부작용이 있다는 사실에주의하십시오.

MSTest.TestAdapter컴파일하는 동안 너겟 패키지 와 관련된 오류가 발생했습니다 . 제거하여 해당 문제를 해결했습니다<Target>태그 . 성공적으로 구축되었지만 테스트 방법은 발견 할 수 없게되었습니다. 테스트 탐색기는 해당 프로젝트의 테스트 방법을 나열하지 않으며 테스트 실행 또는 테스트 테스트도 작동하지 않습니다.

Visual Studio 2017and 를 사용하는 동안이 .Net framework 4.7문제가 발생했습니다. 다른 버전에서도 잘 발생할 수 있습니다.


1
VS2017, .Net4.7 및 단위 테스트 프로젝트를 사용하여 정확히 그 문제를 겪었습니다. 해당 프로젝트는 여러 솔루션에 추가됩니다. 자동 복원이 작동하지만 잘못된 위치에 있습니다. $(SolutionDir)작업으로 교체 하지만 업데이트가 실패합니다. 나는 그것을 여기에서 물었다 . 해결책이 있습니까?
Sebastian Schumann

0

나에게 문제는 전체 파일 경로가 너무 커서 NuGet이 패키지를 자동으로 가져 오거나 업데이트 할 수 없다는 것입니다. 솔루션을 깊이 중첩 된 폴더 대신 내 문서의 폴더로 이동하여 수정했습니다 .

그런 다음 솔루션을 마우스 오른쪽 단추로 클릭하고 "NuGet 패키지 복원"을 선택하고 (아마도이를 구축하고 대신한다면 필요하지 않을 수도 있음) "모든 솔루션을 얻기 위해 NuGet 패키지 관리"를 선택하십시오. 최신 버전으로 업데이트되었습니다.

이것은 Microsoft 웹 사이트에서 다운로드 한 샘플 ASP MVC 응용 프로그램의 솔루션을위한 것입니다.


0

DevOps / 빌드 엔지니어의 nuget restore경우 영향을받는 SLN에 대해이 실행 을 수정 하거나 SLN이없는 경우 프로젝트를 수행 할 수 있습니다. 모든 UWP 프로젝트에 대한 CI / CD 빌드를 위해이 작업을 수행해야합니다.

  1. Nuget이 Visual Studio 또는 독립형 빌드 슬레이브에 설치되어 있는지 확인하십시오. 후자 인 경우 PATH에 있는지 확인하고 2 단계를 건너 뛰십시오.
  2. VS Dev CMD 콘솔을 열거 나 이미 열려있는 콘솔을 통해로드하십시오.
    VS2015 call "%VS140COMNTOOLS%VsDevCmd.bat"
    또는
    VS2017call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
  3. call nuget restore MyStuff.SLN또는 call nuget restore MyStuff.csprojSLN이없는 경우.

0

이것이 누군가에게 도움이되는지 확실하지 않지만 솔루션 파일을 TFS에 저장하지 않고 로컬 시스템에서 소스 코드를 삭제하면이 문제가 발생합니다. (초기 개발 중에 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 체크인했지만 솔루션 자체를 체크인하는 것을 잊었습니다.) 다시 작업해야 할 때 TFS에있는 모든 것은 .csproj 파일입니다. .sln 파일이 없습니다. VS에서 파일-> 소스 제어-> 고급-서버에서 열기를 수행하고 .csproj 파일을 열었습니다. 거기에서 모두 저장을 수행하고 .sln 파일을 저장할 위치를 물었습니다. 이 .sln 파일을 최상위 디렉토리가 아닌 다른 폴더 (App_Data, App_Start 등)와 함께 프로젝트 디렉토리에 저장했습니다. 마침내 프로젝트 폴더에서 .sln 파일을 디렉토리에 저장해야한다는 것을 알았습니다. 프로젝트 폴더와 같은 수준에 있습니다. 내 길은 모두 해결되었고 다시 만들 수있었습니다.


0

나를 위해 내 gitignore 파일은 패키지 폴더를 무시하고있었습니다. 다음 gitignore 줄이 문제를 일으켰습니다.

**/packages/*

패키지 폴더를 제거하고 복원했습니다. 이것이 다른 누군가를 돕기를 바랍니다.


0

이 오류를 해결하기 위해 실제로 패키지 폴더에 다른 버전의 MSTest.TestAdapter (1.3.2)가 있고 .csproj 파일 참조가 MSTest.TestAdapter (1.1.0)를 가리키고있었습니다. 모든 MSTest.TestAdapter (1.1.0)를 MSTest.TestAdapter (1.3.2)로 교체했으며 이로 인해 문제가 해결되었습니다.


0

나는이 질문이 오래되었다는 것을 알고 있지만 오늘도 같은 상황에 처했고 최근 에이 문제를 발견 한 사람을 위해 2 센트를 던지기를 원했습니다. ASP MVC 프로젝트에서 솔루션의 하위 폴더로 수동으로 이동 한 다음 Visual Studio 2017을 사용하여 솔루션을 제거하고 솔루션에 다시 읽은 오류가 언급되었습니다. "lib"및 "packages"폴더를 MVC 프로젝트와 동일한 하위 폴더의 루트로 이동하면 문제가 해결되었습니다.


0

나는 같은 문제가 있었는데, 내가 참조하고있는 프로젝트 중 하나가 솔루션 디렉토리 외부에 있었기 때문에 동일한 '/ packages'폴더를 공유하지 않았다. 나를 위해 일한 솔루션은 참조 프로젝트의 솔루션을 열고 거기에 구축하는 것이 었습니다. 해당 프로젝트가 구축되면 오류가 사라졌습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.