C# プロジェクト ファイルで ILMerge を使用して、いくつかの dll を 1 つの dll に結合しようとしています (さまざまな理由により)。ILMerge のターゲットがあるhttps://github.com/loresoft/msbuildtasksから MSBuild コミュニティ タスクをダウンロードしました。
ILMerge ターゲットを使用しようとすると、次のあいまいなエラー メッセージが表示されます。
"C:\svn\AwaitingFeedbackCanceller.csproj" (rebuild target) (1) ->
(Zip target) ->
C:\svn\AwaitingFeedbackCanceller.csproj(150,5): error MSB6001: Invalid command line switch for "ILMerge.exe".
Value cannot be null.\r
C:\svn\AwaitingFeedbackCanceller.csproj(150,5): error MSB6001: Parameter name: path1
これらは、私のプロジェクト ファイルからの関連ビットです。
<PropertyGroup>
<ZipFileName>$(ProjectName)-$([System.String]::Copy('$(projectguid)').Trim('\{\}')).zip</ZipFileName>
<MergedFile>$(ProjectDir)$(ProjectName).dll</MergedFile>
<logFile>$(ProjectDir)$(ProjectName).log</logFile>
<TargetPlatformVersion>v4</TargetPlatformVersion>
<TargetPlatformDirectory>C:\Windows\Microsoft.NET\Framework64\v4.0.30319</TargetPlatformDirectory>
</PropertyGroup>
<ItemGroup>
<inputAssemblies Include="$(ProjectDir)$(OutDir)$(AssemblyName).dll" />
<inputAssemblies Include="$(ProjectDir)$(OutDir)AeriandiGeminiPluginBase.dll" />
<allowDuplicates Include="$(ProjectDir)$(OutDir)ClassAB" />
</ItemGroup>
<Target Name="Merge">
<Message Importance="high" Text="Merging assemblies" />
<ILMerge InputAssemblies="@(inputAssemblies)" AllowDuplicateTypes="@(allowDuplicates)" OutputFile="$(MergedFile)" LogFile="$(logFile)" DebugInfo="true" XmlDocumentation="true" TargetPlatformVersion="$(TargetPlatformVersion)" TargetPlatformDirectory="$(TargetPlatformDirectory)" />
</Target>
多くのプロジェクトの展開を自動化する必要があるため、これは本当に私を遅らせ始めています。
誰かが私が間違っていることを指摘できますか?
乾杯、
アシュリー
開示: このプロジェクトの Github の問題にもこの質問を追加しましたが、応答がありませんでした - https://github.com/loresoft/msbuildtasks/issues/42。