경고 : MyProject.csproj를 참조하는 모든 프로젝트는 Nuget 패키지 Microsoft.Bcl.Build를 설치해야합니다.


90

VS 2012에서 개발 한 ASP.NET MVC 4 앱이 있습니다.이 앱은 주 프로젝트 (MyProject), 단위 테스트 프로젝트 (MyProject.Tests), Azure 배포 프로젝트 (MyProject.Azure) 및 몇 가지로 구성됩니다. 범용 도서관 프로젝트.

솔루션 또는 기본 프로젝트를 마우스 오른쪽 단추로 클릭하고 NuGet 패키지 관리를 선택하면 지난 달에 사용 가능한 것으로 보이는 Microsoft 업데이트가 많이 표시됩니다. 모두 업데이트 버튼을 클릭하면 명백한 문제없이 업데이트가 설치된 것 같지만 솔루션을 빌드 할 때이 오류 메시지가 두 번 나타납니다.

warning : All projects referencing MyProject.csproj must install nuget package Microsoft.Bcl.Build

좋아, MyProject를 참조하는 두 개의 프로젝트 인 MyProject.Tests와 MyProject.Azure가 있습니다. MyProject.Tests를 마우스 오른쪽 단추로 클릭하고 ManageNuGet Packages를 선택한 다음 Microsoft.Bcl.Build를 추가 할 수 있습니다. 그러면 두 가지 경고 중 하나가 제거됩니다. 하지만 VS는 MyProject.Azure 프로젝트에 대한 NuGet 패키지를 관리하는 옵션을 제공하지 않습니다 .

Azure 배포 프로젝트에 Microsoft.Bcl.Build 패키지를 추가하려면 어떻게하나요?

편집하다:

사용자 급증 덕분에 이제이 문제에 대한 Microsoft Connect 문제가 여기 에서 열렸다는 것을 알고 있습니다 .


2
연결 문제를 참조 해 주셔서 감사합니다. 이것은 성가신 문제입니다.
Paul Keister

1
배포 프로젝트를 빌드 할 때의 경고와 관련하여 프로젝트를 게시 할 때 허위 경고를 발생시키는 버그도 있습니다 . 게시 관련 버그는 Connect 에서도 보고됩니다 . 해결 방법을 모르겠습니다.
Edward Brey 2014

3
다른 프로젝트에 대한 참조가있는 WiX 프로젝트 (일명 "열"이라고도 함)를 수집하기 위해 동일한 문제가 나에게 발생합니다. WiX 설치 프로그램 프로젝트가 NuGet 패키지를 설치하는 것은 의미가 없습니다! 아아 !!
Jaans

2
이제 연결 문제에 대한 링크가 404 connect.microsoft.com/VisualStudio/feedback/details/789839/…를
Ryan Gates

답변:


54

경고를 두 번 클릭하면 경고를 비활성화하기위한 지침이 제공됩니다.

아직 Nuget을 지원하지 않는 프로젝트에서 프로젝트 참조를 비활성화하는 것이 안전합니다.

Microsoft.Bcl.Build.targets 에서 굵게 복사 한 아래 부분을 참조하십시오 .

BclBuildValidateNugetPackageReferences

참조에 대해 SkipValidatePackageReferences = true 를 설정하여 프로젝트 참조에 대해이 대상을 비활성화 할 수 있습니다 .

<ProjectReference Include="..\pcl\pcl.csproj">
  <Project>{664a9e98-fac7-4567-a046-0dde95fddb48}</Project>
  <Name>pcl</Name>
  <Properties>SkipValidatePackageReferences=true</Properties>
</ProjectReference>

4
Arthur, Properties 대신 AdditionalPropertes 메타 데이터 값을 설정할 수 있습니까?
TheESJ 2014 년

5
@TheESJ WiX 프로젝트 에서이 문제가 발생했으며 속성 대신 AdditionalProperties 설정이 작동하는 것처럼 보입니다. 나는 그 이유를 알고 싶습니다
lc.

3
이것은 솔루션을 빌드하는 데만 작동하지만 실제로 azure 프로젝트에서 시작 프로젝트로 '실행'을 사용하면 경고가 다시 표시됩니다.
eoleary

2
빌드에서도 작동하지 마십시오. VS 2015 커뮤니티 에디션.
Artyom

2
VS2015 Professional에서 작동하지 않았습니다. 이 줄을 추가하는 데 동일한 문제가 있습니다.
aclalex

63

TheESJ가 제공 한 대답은 정확하지만 표현이 명확하지 않았습니다. 답변에 대해 언급 할 수 없으므로 여기에서 자세한 내용을 제공하겠습니다. 특히 Azure 프로젝트 에서이 문제가 발생 했으며 경고를 없애려면 다음 해결 방법이 필요했습니다.

VisualStudio에서 경고를 두 번 클릭하면 Microsoft.BclBuild.targets 파일의 BclBuildValidateNugetPackageReferences 대상으로 이동합니다. 실제 대상 요소 위에는 프로젝트 참조 검사 비활성화에 대해 설명하는 큰 주석 블록이 있습니다. Azure 프로젝트는 라이브러리 참조를 가질 수 없으므로 해당 Azure 프로젝트가이 특정 빌드 대상의 요구 사항을 충족하는 것은 불가능합니다.

해결책? 실제로 nuget 패키지 참조를 추가 할 수 없으므로 Azure 프로젝트에서 참조 확인을 사용하지 않도록 설정합니다.

따라서 MyProject.csproj 를 참조하는 MyAzureProject.ccproj 라는 두 개의 프로젝트가 있다고 가정 합니다. 이 단계를 따르세요:

  1. 솔루션 탐색기에서 "MyAzureProject"를 마우스 오른쪽 단추로 클릭하고 "프로젝트 파일 편집"을 선택합니다.
  2. "MyProject"에 대한 프로젝트 참조를 찾으십시오. 다음과 같이 보일 것입니다.

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
    </ProjectReference>
    
  3. ProjectReference 요소 내부에 다음 요소를 추가합니다.

      <Properties>SkipValidatePackageReferences=true</Properties>
    
  4. 이제 프로젝트 참조는 다음과 같아야합니다.

    <ProjectReference Include="..\MyProject\MyProject.csproj">
      <Name>MyProject</Name>
      <Project>{1d99490e-d140-4897-9890-238e673a5864}</Project>
      ...
      <Properties>SkipValidatePackageReferences=true</Properties>
    </ProjectReference>
    
  5. 솔루션 탐색기에서 "MyAzureProject"를 마우스 오른쪽 단추로 클릭하고 "프로젝트 다시로드"를 선택합니다.

이제 다시 빌드 할 수 있고 오류가 사라질 것입니다.


17
내 버전의 VS에서는 프로젝트 파일을 편집하기 위해 마우스 오른쪽 버튼을 클릭하기 전에 먼저 마우스 오른쪽 버튼을 클릭하고 "프로젝트 언로드"를해야합니다.
pius

2
MyAzureProject.ccproj대신 의미 했습니까 MyAzureProject.csproj?
Edward Brey 2014

참조 된 프로젝트 * .csproj 파일에 '<Properties> SkipValidatePackageReferences = true </ Properties>'를 추가 한 경우에만 작동합니다. * .ccproj 편집은 작동하지 않습니다.
알렉세이

1
@pius 작은 기능이지만 여러 버전의 VS에서 사용할 수 있는 Productivity Power Tools의 'Power Commands'아래에 'Edit Project File'상황에 맞는 메뉴 옵션 이 있습니다. 한 번의 클릭으로 프로젝트를 언로드하고 프로젝트 파일을 엽니 다.
제프

16

나는 같은 문제에 직면했고 Microsoft.Bcl.Build.targets를 업데이트하려고했습니다. 도움이되지 않았습니다.

일부 조사 후 발견 애저 서비스 프로젝트의 .csproj 파일을 포함하도록 수정해야합니다 <Properties>SkipValidatePackageReferences=true</Properties>.

이것은 @TheESJ의 답변에서 분명하지 않았으므로 별도의 답변을 게시하기로 결정했습니다. @TheESJ에게 감사드립니다.


2

이 문제가 여러 번 발생했으며 Properties 메서드가 실제로 작동하지만 Wix 프로젝트를 처리 할 때 대신 다음을 수행해야했습니다.

<AdditionalProperties>SkipValidatePackageReferences=true</AdditionalProperties>

Properties Xml 노드를 사용했을 때 새로운 오류가 발생했습니다.

'MyInstallerProject.csproj'프로젝트에 대해 OutputPath 속성이 설정되지 않았습니다. 이 프로젝트에 대해 유효한 구성 및 플랫폼 조합을 지정했는지 확인하십시오. 구성 = '디버그'플랫폼 = 'x86'. 이 오류는 다른 프로젝트가이 프로젝트에 대한 프로젝트 간 참조를 따르려고하고이 프로젝트가 언로드되었거나 솔루션에 포함되지 않았으며 참조하는 프로젝트가 동일하거나 동등한 것을 사용하여 빌드되지 않는 경우에도 나타날 수 있습니다. 구성 또는 플랫폼.

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