MEF 플러그인 프로젝트에 참조를 추가할 때 경고 아이콘이 표시되는 이유는 무엇입니까?
플러그인 프로젝트를 직접 참조하고 플러그인 클래스를 인스턴스화하여 플러그인의 코어 클래스를 테스트하고 싶습니다.테스트 콘솔 앱 프로젝트를 만들고 플러그인 프로젝트에 프로젝트 참조를 추가하면 참조 목록의 참조 옆에 경고 아이콘( 느낌표가 있는 노란색 삼각형)이 표시됩니다.
대신 플러그인의 어셈블리 빌드 출력인 dll에 참조를 추가하면 이러한 경고가 표시되지 않습니다.이 경고는 나에게 무엇을 알려줄 수 있습니까?
질문의 댓글에 언급된 것처럼, 다릅니다.프로젝트 간의 NET Framework 버전이 원인일 수 있습니다.새 프로젝트의 속성을 확인하여 다른 기본 버전이 사용되고 있지 않은지 확인합니다.
ASP에서 동일한 문제가 발생했습니다.Net Web App 및 웹 App 내에서 참조해야 하는 두 개의 라이브러리 클래스 프로젝트입니다.빌드가 실패한 이유와 참조가 올바르지 않은 이유에 대한 정보가 제공되지 않았습니다.
솔루션은 모든 프로젝트가 동일한 목표 프레임워크를 갖도록 하는 것이었습니다.
Visual Studio 2015에서 - 오른쪽 클릭 프로젝트 > 속성 > 응용 프로그램 > 대상 프레임워크
솔루션 저장, 치료 및 재구축.프로젝트 참조가 더 이상 노란색 경고로 표시되지 않아야 하며 솔루션이 컴파일됩니다.
내 웹 앱이 대상입니다.넷 4.5인 반면 다른 두 개의 종속 라이브러리 클래스 프로젝트는 대상입니다.Net v4.5.2
각 프로젝트의 모든 버전이 동일한지 확인하고 각 프로젝트를 클릭한 후 여기에서 프로젝트 > 속성 > 응용프로그램 > 대상 버전을 확인합니다.NET 프레임워크
도구 > Nuget Package Manager > Package Manager 콘솔 유형 업데이트 - 패키지 - 다시 설치로 이동합니다(작동하지 않는 경우 2.b로 진행).
이것은 매우 중요하지만 가장 큰 가능성이 있습니다.보통 .csproj 하단에 있는 여러 줄로 </Target>을 제거합니다.
솔루션을 저장, 로드 및 구축합니다.
함께 사용할 프로젝트 모두(또는 모두):
프로젝트 > 속성 > 응용프로그램 > 대상에서 마우스 오른쪽 버튼을 클릭합니다.NET 프레임워크
두 프로젝트(또는 모든 프로젝트)가 동일하게 사용되고 있는지 확인합니다.NET 프레임워크 버전.
현재 솔루션의 모든 프로젝트에 모든 패키지를 다시 설치합니다.
Update-Package -Reinstall
VS를 닫고 엽니다.
바보처럼 보이지만 위의 내용을 따르고 모든 것이 정상적으로 정렬된 후 1시간이 경과했습니다.VS 2017을 다시 시작했더니 문제가 사라졌습니다.
동일한 프레임워크 버전을 대상으로 하는 프로젝트가 있는지 확인합니다.대부분의 경우 현재 프로젝트(다른 프로젝트의 참조를 추가하는 위치)가 다른 .net 프레임워크 버전을 가리키기 때문입니다.
저는 를 참조할 때 이 문제에 부딪혔습니다.의 NET Standard 2.0 클래스 라이브러리.NET Framework 4.7.1 콘솔 응용 프로그램.예, 프레임워크는 다르지만 호환됩니다(.NET Standard는 두 가지 모두에 동의해야 합니다.NET Core 및 .NET Framework.)프로젝트 참조를 정리, 재구축, 제거 및 읽기 등을 시도했습니다.성공하지 못한마지막으로 Visual Studio를 종료하고 다시 열면 문제가 해결되었습니다.
참조된 DLL 및 DLL을 추가할 프로젝트의 NET Framework를 확인합니다.예: DLL ==> 지원 런타임 버전="v4.0" 프로젝트 ==> 지원 런타임 버전="v3.0"
경고 아이콘이 표시됩니다.해결책 : 전체적으로 dll 버전의 일관성을 유지합니다.
이 질문을 받은 지 오래되었지만 아직도 관심이 있는 사람이 있다면 최근에 비슷한 아이콘을 만났습니다.VS 2008을 사용하여 C#.net 프로젝트를 컴파일하고 있었습니다.VS에서 이러한 참조에 대한 어셈블리를 찾을 수 없습니다.VS를 두 번 클릭하면 참조가 새로 고쳐지고 일부 아이콘이 제거됩니다[EDIT: 이제 찾을 수 있습니다.나머지 참고 자료를 위해, 저는 각각의 어셈블리를 컴파일을 해야 했습니다.
@kad81 답변에 내 2센트를 더하면,
Visual Studio -> BUILD -> Configuration Manager로 이동합니다.
오른쪽 상단 모서리의 "Active Solution Platform" 드롭다운(VS 2012)에서 "혼합 플랫폼"인 경우 참조 타사 어셈블리에 따라 적절한 플랫폼으로 변경합니다.
그런 다음 목록의 각 프로젝트에서 모든 프로젝트에 대해 동일한 플랫폼을 선택해야 합니다.(x86이 존재하지 않는 경우, ""를 선택하면 "x86"을 선택할 수 있습니다.)
라이브러리 프로젝트를 먼저 재구성한 다음 프로젝트를 참조합니다.이게 도움이 되길 바랍니다.
Asp.net core에서 프로젝트 이름 공간 또는 이름을 변경하면 경보가 표시되는 경우가 있습니다.이러한 경고를 제거하려면 프로젝트를 언로드하고 다시 로드하면 됩니다.문제가 계속 발생하면 어셈블리 참조를 찾을 수 없음을 의미합니다.
모든 프로젝트가 대상인 Visual Studio 2019를 사용합니다.Net Core 3.1 솔루션의 목표는 다음과 같습니다.
- 치료 / 빌드 / 재구축.
- Visual Studio 2019 다시 시작
이미 암묵적으로 참조된 프로젝트를 명시적으로 참조하는 경우에도 발생합니다.
예
- 프로젝트 a 참조 프로젝트 b
- 프로젝트는 프로젝트 a를 참조합니다(암묵적 참조 추가합니다.확장하여 확인)
- 프로젝트 참조 프로젝트 b
프로젝트 참조 아래쪽에 느낌표가 표시됩니다.
저는 다른 이유로 이 아이콘들을 가지고 있었습니다.우리는 모든 프로젝트를 위한 하나의 큰 솔루션(거의 100개)을 보유하고 있습니다.제가 관심 있는 프로젝트를 서브셀렉션하여 새로운 솔루션을 만들었습니다.그러나 컴파일된 DLL에 대한 참조 대신 프로젝트가 참조하는 참조...
몇 가지 조사 후에 저는 이것이 VS2015의 새로운 행동임을 설명하는 GitHub에서 이 링크를 발견했습니다.
GitHub 페이지에서는 프로젝트 참조를 이진 참조로 변환하기 위한 해결 방법을 설명합니다.
작동하지 않는 일부 항목을 수정하려면 때때로 일부 라이브러리를 제거하는 것이 합리적입니다. 어떻게 이상하게 들리지 않을까요?
어쨌든, 문제가 너무 광범위하고 다른 요인으로 인해 발생할 수 있다고 생각하기 때문에, 저의 상황/해결책을 공유하고 싶습니다.
저는 Xamarin Forms 및 Telerik 라이브러리와 함께 프로젝트(고객이 제공)를 진행했습니다.이는 일반적으로 패키지 폴더에 포함되지 않는 라이브러리나 Nuget(유료 라이브러리)을 통해 사용할 수 없는 구성 요소와 관련이 있습니다.
References 프로젝트 전체가 "노란색"이었고, 끔찍하고 무섭게 보였습니다.
해결책은 텔레릭 참조(해당 참조를 사용하는 코드의 일부 컨트롤 포함)를 제거하는 것이었습니다.그 직후 모든 참조는 마법처럼 일반적인 일반적인 회색을 얻었고 오류(대부분)는 사라졌습니다.
"대부분" - "요소가 어디에도 정의되지 않음"에 대한 "모든 빨간색" 오류 메시지가 여전히 발생하기 때문입니다.이상하고 불편하지만 프로젝트를 컴파일하고 실행할 수 있습니다. 솔루션 정리, Visual Studio 재시작, 약간의 기도, 다시 정리, obj/bin 폴더 제거, 다시 시작하면 됩니다.
중요한 것은 사용할 수 없는 라이브러리 참조를 제거하는 것입니다. 오류 메시지에는 전혀 다른 내용이 표시됩니다. (예를 들어, "Xamarin"과 같은 것이 있습니다.)빌드.다운로드.XamarinDownloadArchives를 찾을 수 없거나 찾을 수 없음" 등의 메시지가 표시되지만, 이는 사용 가능한 참조가 없음을 의미할 수 있습니다.
그런 다음 패키지 폴더를 제거하고 프로젝트/솔루션을 다시 로드/다시 열고 "Nuget 패키지 관리"로 이동한 다음 "복원" 단추를 클릭합니다.
다중 프로젝트 솔루션에서, 다른 모든 것이 실패한다면,startUp 프로젝트에서 확인하십시오.종속성->조립하여 참조된 오류가 있는 프로젝트가 있는지 확인합니다.제거하고 다시 빌드합니다.
저는 대상 프로젝트에 대한 솔루션에서도 같은 문제가 있었습니다.NET Core 3.1, .NET Standard 2.0 및 .NET Framework 4.8.그 문제는 이 마지막 것에 있었습니다.
제가 이 문제를 해결한 비결은 목표 프레임워크를 로 변경하는 것이었습니다.NET Framework 4.5를 클릭한 다음 으로 돌아갑니다.NET Framework 4.8.
저는 이것이 왜 문제를 해결했는지 전혀 모르지만, 해결되었습니다.
IDE는 Visual Studio 2019였습니다.
텍스트 편집기로 YOUR PROJECT.csproj 파일을 연 다음 파일 끝에서 대상 태그 내부의 이러한 줄을 제거한 다음 프로젝트를 다시 빌드합니다! 패키지 폴더가 <참조> <힌트패스>에 언급된 올바른 경로에 있는지 확인하십시오.
<Error Condition="!Exists('.......
맛있게 드세요 ;)
저도 같은 문제에 직면했지만 제 경우는 위와 조금 달랐습니다.다른 컴퓨터에서 만든 프로젝트를 열려고 했습니다.참조를 추가할 때 패키지 폴더의 경로가 업데이트되지 않으므로 VS를 다시 시작하고 변경합니다.NET 버전 또는 언급된 권장 사항으로는 문제가 해결되지 않습니다.나는 메모장++에서 csproj 파일을 열고 패키지 폴더에 대한 모든 관련 경로를 수정했습니다.그러면 모든 경고가 사라집니다.도움이 되길 바랍니다.
VS 2017에서 청소 후 구축
모두 도와주셔서 감사합니다.다음은 문제를 해결한 방법에 대한 요약입니다.
프로젝트에서 마우스 오른쪽 단추를 클릭합니다.
응용프로그램에서 대상 프레임워크를 변경합니다.제 경우 ImageSharp는 을 사용하고 있었습니다.넷 4.6.1.이것은 packages.config에서 찾을 수 있습니다.
프로젝트 참조로 이동합니다.식스 노동당은 노란색 삼각형을 가지고 있습니다.당신은 NuGet 패키지를 업데이트해야 합니다.
References > Manage NuGet Packages를 마우스 오른쪽 버튼으로 클릭합니다.
6명의 작업자를 업데이트합니다.
약간의 코드 업데이트(아래 참조)가 있을 수 있지만 문제가 해결되었습니다.
이미지 샤프를 변환합니다.이미지에서 이미지로 샤프.픽셀 형식입니다.Rgba32?
Visual Studio 2019에서 프로젝트 목표 프레임워크 중 하나는 .net core였지만 목표 프레임워크가 .net 표준인 다른 프로젝트를 참조하고 있었습니다.모든 프로젝트를 reference .net standard로 변경했더니 아이콘이 사라졌습니다.프로젝트를 제대로 보려면 해당 프로젝트를 클릭하고 속성을 클릭한 다음 대상 프레임워크를 확인합니다.일반적으로 프로젝트 자체를 클릭하고 < Property Group > 아래의 < Target Framework > 태그를 볼 수도 있습니다.
하위 폴더에 있는 .sln을 새로 만들었습니다..sln 파일이 추가된 위치에 .nuget 폴더가 없습니다..nuget 폴더를 루트에서 새 .sln 파일이 해결된 하위 폴더로 이동하는 것이 문제를 해결했습니다.
나중에 돌아와서 루트에 .sln 파일을 추가하고 하위 폴더를 삭제했습니다.원래 이렇게 하면 문제도 해결될 수 있었을 것입니다.
@Aljohn Yamaro(죄송합니다만, 답변에 대해 코멘트를 할 수 없었습니다. 아직 충분한 평판이 없는 새로운 계정이지만, 당신을 업데이트했습니다.)의 답변을 바탕으로 .csproj 파일을 확인했습니다.
내 파일에는 표준 프로젝트 참조 외에도 다음이 있습니다.
<ProjectReference Include="..\ProjectA\ProjectA.csproj">
<Private>true</Private>
<CopyLocalSatelliteAssemblies>true</CopyLocalSatelliteAssemblies>
</ProjectReference>
참조된 프로젝트에서 컴파일된 dll에 대한 직접 링크도 있었습니다.
<ItemGroup>
<Reference Include="ProjectA">
<HintPath>..\ProjectA\bin\Debug\netcoreapp3.1\ProjectA.dll</HintPath>
</Reference>
</ItemGroup>
이 두 번째 참조를 제거하면 문제가 해결되었습니다.
이 짜증나는 노란색 삼각형을 표시하는 이유 중 하나는 프로젝트에 참조를 두 번 추가하는 것이므로 다음을 의미합니다.
- 참조 1: MyProjectOne(이미 MyProjectTwo에 대한 참조 포함)
- 참조 2: My ProjectTwo
참조 2를 삭제하면 노란색 삼각형이 사라집니다.
최신 스타일의 SDK 프로젝트를 사용하는 경우 참조 중인 프로젝트에서 라이브러리 값을 사용하여 ProjectGroup 요소에 OutputType을 추가합니다.참조하는 프로젝트에 포함되어 있고 설정이 없는 프로젝트를 참조하는 경우에도 슬픔을 줄 수 있습니다.
.svrojc 파일을 찾아서 엽니다.
패키지 경로를 찾습니다.저는 이 문제로 프로젝트를 수정했습니다.
..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll
이는 vs가 상위 디렉토리에서 이 dll을 찾을 것임을 의미합니다.
당신은 당신의 패키지 경로를 확인해야 하며, 당신의 의지로 이 문제를 해결해야 합니다.
한 가지 더 간단한 대답: 비주얼 스튜디오를 종료하고 다시 열면 문제가 해결됩니다.
언급URL : https://stackoverflow.com/questions/20186216/why-do-i-get-a-warning-icon-when-i-add-a-reference-to-an-mef-plugin-project
'programing' 카테고리의 다른 글
Swift의 정밀 문자열 형식 지정자 (0) | 2023.05.13 |
---|---|
기본 유형 생성자를 호출하기 전에 VB.NET이 인스턴스 변수를 초기화하도록 강제할 수 있습니까? (0) | 2023.05.13 |
Angular 2에서 구성 요소의 재렌더링을 강제하는 방법은 무엇입니까? (0) | 2023.05.13 |
비동기 작업을 동시에 기다리는 중이며 Wait()이 여기서 프로그램을 중지하는 이유는 무엇입니까? (0) | 2023.05.13 |
파이썬에서 목록이 비어 있는지 확인하는 방법은 무엇입니까? (0) | 2023.05.13 |