0

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

4

2 に答える 2

1

これを機能させるには、IlMerge MSI をインストールする必要がありました。ToolPath を指定して NuGet バージョンを使用しようとしましたが、何らかの理由で IlMerge が見つかりませんでした。

msi バージョンをインストールした後、正常に動作しました。

http://www.microsoft.com/en-us/download/details.aspx?id=17630

于 2013-06-28T18:59:57.663 に答える
0

上記と同じ問題がありましたが、この ToolPath を NuGet バージョンの ILMerge タスクに追加することで、機能させることができました。

<ILMerge ToolPath="packages\ilmerge.2.13.0307" ...
于 2014-04-09T20:20:45.217 に答える