이 문제를 검색했지만 해결책이 없습니다. 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입니다.
- 내 솔루션에 .nuget 폴더가 없습니다.
- 솔루션에 패키지 폴더가 있고 삭제하면 NuGet이 종속성을 다시 작성하는 것처럼 보이지만 프로젝트에는 여전히 위의 오류가 있습니다.
- TFS에서 프로젝트를 제거하려고 시도했지만 문제가 해결되지 않았습니다.
- 위의 오류와 함께 프로젝트의 모든 참조에는 노란색 경고 표시가 있으며 누락되었다고 말합니다.
- 프로젝트의 NuGet Package Manager를 확인하면 “누락 된”모든 항목 옆에 Microsoft.Net.Compilers를 포함한 녹색 체크 표시가 나타납니다.
- 새 웹 API / MVC 프로젝트를 추가하려고 시도했는데 Owin과 같은 대부분의 참조가 노란색 경고 표시와 함께 “누락”되는 비슷한 문제에 직면했습니다.
답변
오늘 같은 오류가 발생했습니다 (정확히 동일한 패키지 누락). 또한 MVC + Web API 프로젝트를 만들었습니다.
앱 파일 (.csproj 포함) 파일을 다른 위치로 옮겼 기 때문에 발생했습니다. .sln 파일을 수동으로 업데이트했지만 모든 패키지 종속성이 .csproj 파일에 저장되었습니다 (Visual Studio 2015).
.csproj 파일을 편집하고 솔루션 폴더 (패키지 폴더 포함)의 상대 경로를 수정하면 문제가 해결되었습니다.
답변
.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>
답변
주의-이것은 프로젝트뿐만 아니라 전체 솔루션의 패키지를 업데이트합니다.
솔루션을 빌드하는 동안 오류를 발생시키는 누락 된 nuget 패키지가 하나 더 있으면 도구> Nuget 패키지 관리자> 패키지 관리자 콘솔에서 Nuget 명령 콘솔을 사용하여 다음 명령을 사용하십시오. 모든 현재 패키지가 다시 설치됩니다.
Update-Package –reinstall
최신 정보:
특정 프로젝트 이름을 매개 변수로 전달할 수 있습니다.
Update-Package –reinstall -ProjectName SampleApp
답변
나는이 실망스러운 메시지를 받았다. 마침내 나를 위해 일한 것은 / packages 내의 모든 파일과 폴더를 삭제하고 VS가 다음 빌드에서 모든 것을 다시 가져올 수있게하는 것이 었습니다.
답변
티 베리 우가 맞습니다. 파일이 이동 되어이 문제가 발생했을 때 .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'))" />
답변
이 방법으로 내 오류를 해결했습니다. 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 파일에서 다음 코드를 제거 하여이 문제를 해결했습니다.
<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'))" />