2017-04-26 1 views
1

이 질문은 this과 같은 질문이지만 해결책은 저를 위해 작동하지 않습니다. 나는 LinkerPleaseInclude.cs의 다음에 파일이 있습니다Xamarin 링커 : 형식 MvvmCross.Platform.IoC.MvxPropertyInjector에 대해 기본 생성자를 찾을 수 없습니다.

public void Include(MvvmCross.Platform.IoC.MvxPropertyInjector injector) 
{ 
    injector = new MvvmCross.Platform.IoC.MvxPropertyInjector(); 
} 

내가 모든 링커 동작으로 링크를 사용하고,하지만 나는 LinkerPleaseInclude.cs에 위의 내용을 포함하여 제거하지 링커를 암시 할 인상이었다 그것.

확실하지가 여기에 중요하지만, 경우 일부 플랫폼의 세부 사항은 다음과 같습니다

자 마린 스튜디오 6.3

은 MvvmCross 4.4.0

.NETCore UWP 5.3.3

답변

0

파일 LinkerPleaseInclude.cs 이름 그 자체로 아무것도 보존하지 않습니다. 그것은 Mvvmcross에서 사용하는 유일한 대회입니다.

Include 메서드를 호출하거나 아무 것도 저장하지 않으면 링커에서 (필요에 따라) 표시하지 않으며 MvxPropertyInjector .ctor는 표시되지 않습니다.

* 메서드에 [Preserve] 특성을 추가하면 링커가 해당 메서드 (및 호출하는 모든 요소)를 포함하도록합니다.

+0

'LinkerPleaseInclude' 클래스에'[Preserve (AllMembers = true)] 속성을 추가하면 포함 된 모든 멤버들의 문제를 해결할 수 있습니다. –

+0

그게 효과가있었습니다. 감사. 그 파일에 코드를 추가해야하지만, [보존]이 필요하지는 않은 다른 여러 유형/메소드가 있다는 것이 흥미 롭습니다. –

+0

다른 * 사용 된 * 코드 경로가 필요한 코드에 도달하면'[Preserve]'는 필요하지 않습니다. 링커 정적 분석기는 해당 분석기가 유지되는지 확인합니다. – poupou

관련 문제