MSBuild社区任务 - ILMerge无效的命令行开关path1

时间:2013-03-07 16:07:24

标签: msbuild ilmerge

我正在尝试在C#项目文件中使用ILMerge将一些dll组合成一个dll(由于各种原因)。我已从https://github.com/loresoft/msbuildtasks下载了MSBuild社区任务,其中包含ILMerge的目标。

尝试使用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

2 个答案:

答案 0 :(得分:1)

为了实现这一点,我必须安装IlMerge MSI。我试图使用指定了ToolPath的NuGet版本,但由于某种原因它仍然无法找到IlMerge。

安装msi版本后,它运行正常。

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

答案 1 :(得分:0)

我遇到了与您上面描述的相同的问题,但是通过将此ToolPath添加到ILMerge任务的NuGet版本,我能够使其工作:

<ILMerge ToolPath="packages\ilmerge.2.13.0307" ...