2017-03-15 3 views
0

필자는 대상 Linux BeagleBone Black에서 Debian 8 파생 OS를 실행하는 앱을 작성했습니다.mkbundle and MEF

전체 모노 런타임을 설치하면 실행됩니다. 이것은 내가 실행할 목표물에 비해 너무 큽니다.

mkbundle을 사용하여 모든 패키지가 포함 된 정적 패키지를 만들고 싶습니다.

내가 겪고있는 문제는이 응용 프로그램에서 MEF 및 의존성 주입을 사용하고 있고 mkbundle이 만드는 최종 번들을 실행할 때 아래에 표시된 오류가 발생한다는 것입니다.

MEF 및/또는 내 응용 프로그램이 DLL 어셈블리를로드하여 대부분의 내보내기를로드하도록 작성되었으며 해당 DLL이 번들 내부에 포함되어 있기 때문인 것으로 판단됩니다.

누구든지이 문제에 대해 의견을 개진 할 수 있습니까?

[ERROR] FATAL UNHANDLED EXCEPTION: System.ArgumentException: 'path' cannot be an empty string (""). 
Parameter name: path 
    at Microsoft.Internal.Requires.NotNullOrEmpty (System.String value, System.String parameterName) [0x00022] in <0007e672dd7f4959adc6f8103d9c843f>:0 
at System.ComponentModel.Composition.Hosting.DirectoryCatalog..ctor (System.String path, System.String searchPattern) [0x00011] in <0007e672dd7f4959adc6f8103d9c843f>:0 
at NonWindowsCommon.MefDI.<DirectoryCatalogContainer>m__1 (System.String path) [0x00022] in <15e2f18d34444e41a666c99ead602eed>:0 
at System.Linq.Enumerable+WhereSelectEnumerableIterator`2[TSource,TResult].MoveNext() [0x00064] in <63992662b765477a898ef49cdcc99ee2>:0 
at System.Diagnostics.Contracts.Contract.ForAll[T] (System.Collections.Generic.IEnumerable`1[T] collection, System.Predicate`1[T] predicate) [0x00048] in <8f2c484307284b51944a1a13a14c0266>:0 
at Microsoft.Internal.Requires.NotNullElements[T] (System.Collections.Generic.IEnumerable`1[T] values, System.String parameterName) [0x00013] in <0007e672dd7f4959adc6f8103d9c843f>:0 
at Microsoft.Internal.Requires.NullOrNotNullElements[T] (System.Collections.Generic.IEnumerable`1[T] values, System.String parameterName) [0x00000] in <0007e672dd7f4959adc6f8103d9c843f>:0 
at System.ComponentModel.Composition.Hosting.AggregateCatalog..ctor (System.Collections.Generic.IEnumerable`1[T] catalogs) [0x00006] in <0007e672dd7f4959adc6f8103d9c843f>:0 
at NonWindowsCommon.MefDI.DirectoryCatalogContainer (System.String basepath) [0x0002c] in <15e2f18d34444e41a666c99ead602eed>:0 
at Ignition.CommandLine.Program.Configure() [0x0006b] in <c9925f8b4dd141c2a6ea39dd7842d0d4>:0 
at Ignition.CommandLine.Program..ctor() [0x00012] in <c9925f8b4dd141c2a6ea39dd7842d0d4>:0 
at Ignition.CommandLine.Program.Main (System.String[] args) [0x00001] in <c9925f8b4dd141c2a6ea39dd7842d0d4>:0 

답변

0

우리 DEVS 다른 하나가 쓴 코드 EXE 파일 경로를 사용하여 우리 조성물 용기를 만드는 것을 밝혀 : 여기

오류이다. 이 EXE 경로는 EXE를 생성 한 mkbundle 내부에서 실행될 때 주 EXE에 대한 ""것입니다.

이렇게하면 dev가 작성한 코드에서 빈 경로를 사용하게됩니다.

나는 진정한 EXE 경로를 추적하고 그것을 컨테이너 생성에 사용 된 방법으로 전달함으로써 해결할 수있었습니다.