플러그인 프로젝트를 직접 참조하고 플러그인 클래스를 인스턴스화하여 플러그인의 핵심 클래스를 테스트하고 싶습니다. 테스트 콘솔 앱 프로젝트를 만들고 플러그인 프로젝트에 프로젝트 참조를 추가하면 참조 목록의 참조 옆에 경고 아이콘 (느낌표가있는 노란색 삼각형)이 나타납니다.
대신 플러그인의 어셈블리 빌드 출력 인 dll에 대한 참조를 추가하면 그러한 경고가 표시되지 않습니다. 이 경고가 무엇을 말하려고합니까?
플러그인 프로젝트를 직접 참조하고 플러그인 클래스를 인스턴스화하여 플러그인의 핵심 클래스를 테스트하고 싶습니다. 테스트 콘솔 앱 프로젝트를 만들고 플러그인 프로젝트에 프로젝트 참조를 추가하면 참조 목록의 참조 옆에 경고 아이콘 (느낌표가있는 노란색 삼각형)이 나타납니다.
대신 플러그인의 어셈블리 빌드 출력 인 dll에 대한 참조를 추가하면 그러한 경고가 표시되지 않습니다. 이 경고가 무엇을 말하려고합니까?
답변:
질문의 의견에서 언급했듯이 프로젝트마다 다른 .NET Framework 버전으로 인해 문제가 발생할 수 있습니다. 다른 기본 버전이 사용되지 않도록 새 프로젝트의 속성을 확인하십시오.
ASP.Net 웹 앱과 웹 앱 내에서 참조해야하는 두 개의 라이브러리 클래스 프로젝트에서 동일한 문제가 발생했습니다. 빌드가 실패한 이유와 참조가 유효하지 않은 이유에 대한 정보가 없습니다.
해결책은 모든 프로젝트가 동일한 대상 프레임 워크를 갖도록하는 것입니다.
Visual Studio 2015- 프로젝트> 속성> 응용 프로그램> 대상 프레임 워크를 마우스 오른쪽 단추로 클릭하십시오.
솔루션 저장, 청소 및 재 구축 프로젝트 참조가 더 이상 노란색 경고로 나타나지 않아야하며 솔루션이 컴파일됩니다.
내 웹 응용 프로그램은 .Net 4.5를 대상으로하는 반면 다른 두 개의 종속 라이브러리 클래스 프로젝트는 .Net v4.5.2를 대상으로했습니다.
함께 사용하려는 프로젝트 둘 다 (또는 모두) :
프로젝트> 속성> 애플리케이션> 대상 .NET 프레임 워크를 마우스 오른쪽 단추로 클릭하십시오.
두 프로젝트 (또는 모두)가 동일한 .NET 프레임 워크 버전을 사용하고 있는지 확인하십시오.
ㅏ. 도구> Nuget 패키지 관리자> 패키지 관리자 콘솔 유형 업데이트 패키지- 재설치로 이동하십시오 (작동하지 않는 경우 2.b로 진행하십시오). ).
비. 이것은 비판적이지만 작동하는 가장 큰 가능성 입니다. 일반적으로 .csproj의 맨 아래에있는 </ Target> 여러 줄이있는 <Target>을 제거하십시오 .
솔루션을 저장,로드 및 빌드하십시오.
현재 솔루션의 모든 프로젝트에서 모든 패키지를 다시 설치하십시오.
Update-Package -Reinstall
동일한 프레임 워크 버전을 대상으로하는 프로젝트 가 있는지 확인하십시오 . 그 이유는 대부분 다른 프로젝트의 참조를 추가하는 현재 프로젝트가 나머지 프로젝트와 다른 .net 프레임 워크 버전을 가리 키기 때문입니다 .
@ kad81 답변에 내 2 센트를 추가하면
Visual Studio-> 빌드-> 구성 관리자로 이동하십시오.
오른쪽 상단의 "Active Solution Platform"드롭 다운 (내 VS 2012)에서 "Mixed Platforms"인 경우 참조 타사 어셈블리를 기반으로 해당 플랫폼으로 변경하십시오.
그런 다음 목록의 각 프로젝트에서 모든 프로젝트에 대해 동일한 플랫폼을 선택해야합니다. x86이 없으면 ""를 선택하고 "x86"을 선택할 수 있습니다.
라이브러리 프로젝트를 먼저 다시 빌드 한 다음 프로젝트를 참조하십시오. 도움이 되었기를 바랍니다.
Asp.net 코어에서는 프로젝트 이름 공간이나 이름을 변경하면 경고가 표시됩니다. 이런 종류의 경고를 제거하려면 프로젝트를 언로드하고 다시로드하십시오. 문제가 여전히 존재하면 어셈블리 참조를 찾을 수 없음을 의미합니다.
다른 이유로이 아이콘이있었습니다. 우리는 모든 프로젝트를위한 하나의 큰 솔루션을 가지고 있습니다 (약 100 개). 관심있는 프로젝트를 일부 선택하고 새로운 솔루션을 만들었습니다. 그러나 컴파일 된 dll에 대한 참조 대신 프로젝트 참조가있는 참조는 ....
몇 가지 연구를 한 결과 VS2015의 새로운 동작을 설명 하는 GitHub 에서이 링크를 찾았 습니다.
GitHub 페이지에서 프로젝트 참조를 이진 참조로 변환하는 해결 방법을 설명합니다.
작동하지 않는 일부를 수정하려면 때로는 일부 라이브러리 를 제거 하는 것이 합리적 입니다.
어쨌든, 나는 문제가 너무 넓고 다른 요인 으로 인해 발생할 수 있다고 생각 합니다. 하므로 내 상황 / 해결책을 공유하고 싶습니다.
Xamarin Forms 및 Telerik 라이브러리와 함께 프로젝트 (고객이 구입)가있었습니다. 일반적 으로 패키지 폴더 에는 라이브러리가없고 Nuget (유료)을 통해 사용할 수 있는 구성 요소와 관련이 있었습니다.
전체 프로젝트 참조는 "노란색"으로, 끔찍하고 무섭게 보였습니다.
솔루션 단지 있었다 제거하기 위해 그 Telerik의 참조 (즉를 사용하고 코드에서 몇 가지 컨트롤을 포함하여). 그 직후 모든 참조는 마술처럼 일반적인 일반적인 회색을 얻었고 오류는 대부분 사라졌습니다.
"대부분"- "요소가 어디에도 정의되어 있지 않습니다"라는 오류 메시지가 여전히 여전히 발생하기 때문에 이상하고 불편 함이 있지만 여전히 프로젝트를 컴파일하고 실행할 수 있습니다. 솔루션을 청소하고 Visual Studio를 다시 시작하고 약간기도하고 다시 청소하고 obj / bin 폴더를 제거하고 다시 시작하면됩니다. 잘 작동합니다.
중요한 것은 오류 메시지가 절대적으로 다른 것을 말하므로 사용 가능한 라이브러리 참조를 제거하는 것입니다. (예를 들어, "Xamarin.Build.Download.XamarinDownloadArchives를 찾을 수 없거나 찾을 수 없음"등)과 같은 것이지만 이는 참조가없는 것을 의미 할 수 있습니다.
그런 다음 패키지 폴더를 제거하고 프로젝트 / 솔루션을 다시로드 / 다시 열고 "Nuget 패키지 관리"로 이동하여 "복원"버튼을 클릭하십시오.
VS 2017에서 정리하고 빌드하십시오.
도와 주셔서 감사합니다. 문제를 해결 한 방법에 대한 분석은 다음과 같습니다.
프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성
응용 프로그램에서 대상 프레임 워크를 변경하십시오. 필자의 경우 ImageSharp는 .Net 4.6.1을 사용하고있었습니다. packages.config에서 찾을 수 있습니다.
프로젝트 참조로 이동하십시오. SixLabors에는 노란색 삼각형이 있습니다. NuGet 패키지를 업데이트해야합니다.
참조> NuGet 패키지 관리를 마우스 오른쪽 단추로 클릭하십시오.
SixLabors를 업데이트하십시오.
약간의 코드 업데이트가있을 수 있지만 (아래 참조) 내 문제가 해결되었습니다.
ImageSharp.Image를 ImageSharp.PixelFormats.Rgba32로 변환 하시겠습니까?