1

これについてはここにたくさんの投稿があります。私は別のSO投稿からこのコードを使用し、Main()メソッドにデリゲートの割り当てを配置しています。他の投稿はどれも私の質問に直接答えていません。

サードパーティのアセンブリをリソースとして埋め込んでいますが、アプリを起動すると次のようになります。

  • FileNotFoundExceptionの内部を持つTypeInitializationExceptionが発生しています。ファイルシステムでアセンブリを見つけようとして失敗します。
  • AssemblyResolveのイベントハンドラーが割り当てられているMainメソッドに到達することはありません。

Resources.resxに埋め込まれている2つのアセンブリ参照があります。1つはサードパーティツール(コマンドラインパーサー)で、もう1つはアプリケーションの要点が存在するライブラリファイルです。

たぶん、これはコンソールアプリでは不可能ですか?ありそうもないようですが、私はそれを回避する方法がわかりません。

Re:ILMergeなど:ツールを使用せずに、これを完全にコードで実行したいと思います。理由:リポジトリにソースコードを入れたくないので、他のチームメンバーがおそらくまだ持っていないツールをインストールする必要があります。それが不可能な場合、ILMergeは次善の選択肢のように見えます。

4

3 に答える 3

2

リソースとして埋め込むのではなく、ILMergeを使用してアセンブリを1つにマージすることを検討してください。これはILMergeのダウンロードサイトです。

サードパーティのアセンブリをコンソールアプリにマージします。

于 2010-03-10T16:24:16.903 に答える
1

XenoCodeのようなアプリケーション仮想化ツールも見ることができます。複数のアセンブリ(.net Framework自体を含む)をスタンドアロンの実行可能ファイルにパッケージ化できます。

于 2010-03-10T21:39:09.257 に答える
1

混合モードアセンブリの場合は、ディスク上に存在する必要があります。いくつかの制限か何か。

于 2010-03-11T15:18:00.100 に答える