2017-03-15 5 views
0

Debian 8派生OSをターゲットとするLinux BeagleBone Blackで動作するアプリケーションを作成しました。mkbundleとMEF

モノラルランタイム全体をインストールすると実行されます。これは私がそれを実行する最終目標にとっては大きすぎます。

mkbundleを使用して、すべてが埋め込まれた静的パッケージを作成したいと考えています。

私が抱えている問題は、このアプリケーションでMEFと依存性注入を使用していることです。mkbundleが作成する最終バンドルを実行すると、以下のエラーが表示されます。

私は、DLLアセンブリを読み込むことによって、MEFや私のアプリケーションが書き出しのほとんどを読み込んで、バンドルの内部に埋め込まれているからです。

誰もがこれにいくつかの光を当てることができますか?ここで

は誤りです:

[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

は、当社の他の開発者の1が書いたコードは、exeファイルのパスを使用して、当社の組成物容器を作成していたことが判明しました。このEXEパスは、EXEを作成したmkbundleの内側から実行すると、メインEXE用です。

これは、devが空のパスを使用するように記述したコードを引き起こしていました。

私は本当のEXEパスを追跡し、コンテナの作成に使用された方法でそれを渡すだけで解決できました。