2017-02-17 1 views
0

Visual Studio 2008에서 실행되는 Compact Framework 2.0에서 회사의 핵심 라이브러리를 Visual Studio 2015, Update 3으로 마이그레이션하는 작업을 담당하고 있습니다. .Net 4.6. 새로운 클래스 라이브러리를 만들었고 참조를 이전 .Net 버전의 이전 라이브러리를 가리 키도록 변경했습니다. 예를 들어 새 ProducCoreDotNet 라이브러리에서 Sender.dll 및 Utils.dll을 참조하는 ProdoctCore 라이브러리가있는 경우 해당 참조를 SenderDotNet.dll 및 UtilsDotNet.dll에 추가했습니다. 그런 다음 이전 Compact Framework의 클래스 파일을 "링크로 추가"하여 새 솔루션에 추가했습니다. 기본적으로 프로젝트 이름에는 DotNet 확장이 있지만 네임 스페이스의 이름은 이전과 완전히 같습니다. .참조 형식 'ISomeInterface'가 참조되지 않은 어셈블리에 정의되었습니다.

" 'IMonitorComponent'이 참조되지 않은 어셈블리에 정의 된 참조 유형 당신은 어셈블리에 대한 참조를 추가해야합니다

지금 내가 직면하고있어 문제는 내가 이상한 오류를 얻고 있다는 것입니다 'Utils, Version = 1.5.0.0, Culture = neutral, PublicKeyToken = null' "

그러나 UtilsDotNet의 버전은 1.0.0.0이고 이전 유틸리티는 2.0.0.0이었습니다.

비슷한 스레드를 몇 군데 읽었지만 this question에서 언급 한 것과 달리 IMonitorComponent는 다른 어셈블리에 대한 참조를 가지고 있지 않습니다. 단순히 두 가지 속성을 가진 인터페이스 일뿐입니다.

public enum COMPONENT_STATUS 
{ 
    ERROR, 
    WARNING, 
    OK, 
    UNKNOWN, 
    DISABLED 
} 

public class ComponentStatusProperty 
{ 
    public ComponentStatusProperty(string name, COMPONENT_STATUS status, string message) 
    { 
     ComponentName = name; 
     Status = status; 
     Message = message; 
    } 

    public COMPONENT_STATUS Status { get; set; } 
    public string Message { get; set; } 
    public string ComponentName { get; set; } 
} 

public interface IMonitorComponent 
{ 
    string Name { get; } 
    List<ComponentStatusProperty> Statuses { get; } 
    bool ComponentSoBrokenThatTheDeviceCannotWork { get; } 
} 

그래서 저는 아이디어가 없으므로 도와 주셔서 감사합니다. 또한 이전에 이런 일을하지 않았기 때문에 대답을 자세히 설명해주십시오.

+0

"UtilsDotNet"대신 "Utils"에 대한 참조를 추가하는 것이 좋습니다. 새 프로젝트가 이전 DLL을 참조 할 수 있습니까 (예 : 참조 추가 -> 프로젝트 참조). – wablab

+0

@wablab 모든 참조를 추가 참조로 추가했습니다. -> 찾아보기는 어셈블리의 각 DotNet 버전의 bin/Debug 폴더로 이동하여 추가합니다. Utils와 UtilsDotNet의 네임 스페이스는 모두 같습니다. 또한, 동일한 방식으로 많은 참조 된 어셈블리가 있음에도 불구하고이 특정 인터페이스에 대한 오류 메시지 만 표시합니다. –

+0

ProductCoreDotNet, SenderDotNet 및 UtilsDotNet이 모두 동일한 VS 솔루션에 있다고 가정하면 솔루션 내의 모든 참조가 삭제 된 다음 Add Reference -> Project를 통해 다시 추가됩니다. 그런 다음 모두 다시 작성하십시오. – wablab

답변

1

우리는 마침내 그 이유를 발견했습니다. 우리는 Utils 버전 1.5를 사용하는 또 다른 참조를 사용하고있었습니다. 그래서 나는 그 참조 용으로 또 다른 클래스 라이브러리를 만들었고 참조 용으로 새로운 UtilsDotNet을 사용했고 문제는 수정되었습니다.

관련 문제