2016-06-07 2 views
2

디버그 모드에서는 잘 작동하지만 릴리스 모드에서는 전혀 작동하지 않는 프로젝트가 있습니다.릴리스 모드에서 UWP를 빌드 할 수 없습니다.

이 솔루션은 오류 출력을 3 개 프로젝트

  • 공유 프로젝트

  • 윈도우 폰 8.1 프로젝트

  • UWP 프로젝트 여기

입니다 포함

2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : System.InvalidOperationException: Unable to generate a temporary class (result=1). 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0012: The type 'Windows.UI.Xaml.Visibility' is defined in an assembly that is not referenced. You must add a reference to assembly 'Windows.Foundation.UniversalApiContract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime'. 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0030: Cannot convert type 'Windows.UI.Xaml.Visibility' to 'Windows.UI.Xaml.Visibility [e:\MyApp\obj\x86\Release\ilc\in\WinMetadata\Windows.winmd]' 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : error CS0029: Cannot implicitly convert type 'Windows.UI.Xaml.Visibility [e:\MyApp\obj\x86\Release\ilc\in\WinMetadata\Windows.winmd]' to 'Windows.UI.Xaml.Visibility' 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : at System.Xml.Serialization.Compiler.Compile(String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence, String outputDir, String intermediateDir, Boolean loadAssembly) 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Hashtable assemblies, String outputDir, String intermediateDir, Boolean loadAssembly) 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, XmlMapping[] mappings, CompilerParameters parameters, String outputDir, String intermediateDir, Boolean loadAssembly) 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : at System.Xml.Serialization.XmlSerializer.GenerateSerializer(Type[] types, String outputDir, String intermediateDir, List`1 wcfSerializers, Boolean loadAssembly) 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : at SerializationAssemblyGenerator.Program.Main(String[] args) 
2>C:\Program Files (x86)\MSBuild\Microsoft\.NetNative\x86\ilc\IlcInternals.targets(887,5): error : Internal compiler error: One or more errors occurred. 
내가 사용

nuget 패키지는

"GoogleAnalyticsSDK": "1.2.12", 
    "HockeySDK.UWP": "4.0.0", 
    "HtmlAgilityPack": "1.4.9", 
    "Microsoft.ApplicationInsights": "1.0.0", 
    "Microsoft.ApplicationInsights.PersistenceChannel": "1.0.0", 
    "Microsoft.ApplicationInsights.WindowsApps": "1.0.0", 
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0", 
    "MvvmLightLibs": "5.1.1", 
    "Newtonsoft.Json": "8.0.3", 
    "WriteableBitmapEx": "1.5.0" 

내가 수동으로 Windows.Foundation.UniversalApiContract을 추가하려고하지만,이

있어

업데이트 업데이트 2

.Net 네이티브 도구 체인 기능으로 컴파일을 선택 취소 한 후에도 작동했습니다.

.net 기본 툴 체인을 사용하여 빌드하는 방법은 무엇입니까?

+3

* "Windows.Foundation.UniversalApiContract, 버전 = 2.0.0.0, Culture = 중립, PublicKeyToken = null, ContentType = WindowsRuntime '"*에 대한 참조를 추가해야합니다. * - 관련성이 있습니다. – IInspectable

+0

아니요, 자동으로 추가해야합니다. 업데이트 된 질문을 확인하십시오. –

+0

처음 불쾌한 사고가 난 후에받을 수있는 오류 메시지는 믿을 수 없습니다. .NET 네이티브 컴파일러 문제 해결은 질문의 범위를 벗어납니다. 코드에 액세스 할 수있는 사람이 필요하며 해당 컴파일러에서 버그를 찾거나 코드에서 해결 방법을 제안하는 컴파일러에 대해 충분히 알고 있어야합니다. Microsoft Support에서 해당 사용자 만 찾을 수 있습니다. –

답변

2

나는 또한 매우 비슷한 문제에 부딪쳤다. 타입이 있었는데, Foo라고 가정 해 보자. 아래에서 winmd 타입의 Windows.UI.Xaml.Visibility를 참조한다.

public class Foo 
    { 
     public Windows.UI.Xaml.Visibility Visibility; 
    } 

XmlSerializer를 사용하여 Foo 형식의 인스턴스를 serialize하려 할 때 컴파일 타임에 똑같은 오류가 발생했습니다. .NET 네이티브 도구에는 Foo와 같은 유형의 XmlSerializer를 생성하는 데 문제가있는 것으로 보입니다.

여기가 제 해결 방법입니다. 내 자신의 가시성 유형 MyVisibility를 만들고 기존 가시성 필드를 으로 변경했습니다. (XmlSerializer가 속성을 serialize하지 않도록) 속성 만 가져옵니다.

public class Foo 
    { 
     public Windows.UI.Xaml.Visibility Visibility 
     { 
      get 
      { 
       return (Visibility)myVisibility; 
      } 
     } 

     public MyVisibility myVisibility; 
    } 

    public enum MyVisibility 
    { 
     Visible = 0, 
     Collapsed = 1 
    } 

는 여기에 푸 인스턴스를 직렬화 내 테스트 코드,이 도움이

public static void Test() 
    { 
     var foo = new Foo(); 
     foo.myVisibility = MyVisibility.Collapsed;    
     var serializer = new XmlSerializer(typeof(Foo)); 
     using (var stream = new MemoryStream()) 
     { 
      serializer.Serialize(stream, foo); 
      stream.Position = 0; 
      var foo1 = (Foo)serializer.Deserialize(stream); 
      Assert.True(foo.Visibility == foo1.Visibility); 
     } 
    } 

희망입니다.

+0

감사! 그게 효과가있어! –

관련 문제