92043


提示コードですがILMerge.exeのコマンドが通らない原因が知りたいです。  
`オブジェクト参照がオブジェクト
インスタンスに設定されていません。`とはどいう意味なのでしょうか？参考サイトを参考にコマンドを入力したのですが以下のエラーが表示され`.dll`を`.exe`に含めることが出来ません。

##### 試したこと

以下のようにA,Bのコマンドを試しました。  
`LIMerge.exe オプション 含めたいexe dllファイル `  
のように色々試しました。

参考サイト：  
<https://qiita.com/mkit0031/items/5edde5926217a11aca85>  
<https://atmarkit.itmedia.co.jp/fdotnet/dotnettips/426ilmerge/ilmerge.html>

##### 実行したコマンドA

[code]

    "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /ndebug /targetplatform:v4 /ndebug /wildcards /out:piyo.exe C:\Users\xxxx\Desktop\HEIC_SimpleConverter\HEIC_SimpleConverter\bin\Release\net6.0-windows\HEIC_SimpleConverter.exe *.dll
    
[/code]

##### コマンドプロンプトA

[code]

    C:\Users\xxx>"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /ndebug /targetplatform:v4 /ndebug /wildcards /out:piyo.exe C:\Users\xxxx\Desktop\HEIC_SimpleConverter\HEIC_SimpleConverter\bin\Release\net6.0-windows\HEIC_SimpleConverter.exe *.dll
    An exception occurred during merging:
    オブジェクト参照がオブジェクト インスタンスに設定されていません。
       場所 System.Compiler.CoreSystemTypes.GetSystemAssembly(Boolean doNotLockFile, Boolean getDebugInfo)
       場所 System.Compiler.CoreSystemTypes.Initialize(Boolean doNotLockFile, Boolean getDebugInfo)
       場所 System.Compiler.SystemTypes.Initialize(Boolean doNotLockFile, Boolean getDebugInfo)
       場所 ILMerging.ILMerge.Merge()
       場所 ILMerging.ILMerge.Main(String[] args)
    
[/code]

##### 実行したコマンドB

[code]

    "C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /ndebug /targetplatform:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5" /ndebug /wildcards /out:piyo.exe C:\Users\xxxxx\Desktop\HEIC_SimpleConverter\HEIC_SimpleConverter\bin\Release\net6.0-windows\HEIC_SimpleConverter.exe *.dll
    
[/code]

##### コマンドプロンプトB

[code]

    C:\Users\xxxx>"C:\Program Files (x86)\Microsoft\ILMerge\ILMerge.exe" /ndebug /targetplatform:"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5" /ndebug /wildcards /out:piyo.exe C:\Users\xxxxx\Desktop\HEIC_SimpleConverter\HEIC_SimpleConverter\bin\Release\net6.0-windows\HEIC_SimpleConverter.exe *.dll
    An exception occurred during merging:
    Platform 'C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5' not recognized.
       場所 ILMerging.ILMerge.SetTargetPlatform(String platform, String dir)
       場所 ILMerging.ILMerge.Merge()
       場所 ILMerging.ILMerge.Main(String[] args)
    
[/code]


CC BY-SA 4.0
2022-11-06T12:10:30.980
92040
2022-11-07T01:03:17.787
2022-11-07T01:03:17.787
3060
55177
question
c# .net .net-core
ILMerge のコマンドが通らない原因が知りたい


ILMergeは.NET Frameworkを対象としていますが、質問のコードは.NET 6.0のようですので対象外です。

それとは別に、別スレッドでの質問を見る限り、ImageMagickを使用されていると思いますが、こちらにネイティブコードが含まれているため、どの道マージすることができません。拡張子が`.DLL`であっても、ILMerge等が対象とするのは.NET
Assemblyですが、ImageMagickなどが使用するネイティブDLLは対象外となります。


CC BY-SA 4.0
2022-11-06T13:19:34.433
92043
2022-11-06T13:19:34.433
4236
92040
answer