【问题标题】:Failed to use use "MSBuild.ILMerge.Task" with PackageReference无法将“MSBuild.ILMerge.Task”与 PackageReference 一起使用
【发布时间】:2018-08-06 17:09:47
【问题描述】:

使用通过packagereference 引用的MSBuild.ILMerge.Task 时出现以下错误:

error MSB4018: The "MSBuild.ILMerge.Task" task failed unexpectedly.
error MSB4018: System.IO.FileNotFoundException: Cannot find ILMerge 
executable.
error MSB4018:    at MSBuild.ILMerge.Task.LoadILMerge()
error MSB4018:    at MSBuild.ILMerge.Task.Execute()
error MSB4018:    at error MSB4018:    at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()

这是因为 MSBuild.ILMerge.Task.dll 在其包位置找不到 ILMerge 可执行文件。我猜主要原因可能是 package.config 和 PackageReference 之间的文件夹结构不同。

还有其他人遇到过这个问题吗?提前感谢任何帮助

【问题讨论】:

    标签: msbuild ilmerge packagereference


    【解决方案1】:

    您可以尝试将 ILMerge 降级到 2.14.1208。

    这为我解决了。

    https://github.com/emerbrito/ILMerge-MSBuild-Task/issues/13

    【讨论】:

    • 有用的反馈,从 ILMerge 2.14.1208 升级到 3.X 也破坏了我的 MsBuild.ILMerge.Task,我已经恢复了。
    【解决方案2】:

    我遇到了同样的问题。就我而言,它的出现是由于以下原因(与我的 Nuget 包中的一些更新有关):

    • 有时我的项目文件中处理 Nuget 包的条件很少。每当我更新我的 Nuget 包时,这些项目文件都会更新,我的所有条件都会被覆盖。我通过在 Git 中使用差异工具发现了这个问题并手动添加了我的条件,然后一切正常。
    • 再次,有时我需要更新我的 Nuget 包(我的解决方案包含多个依赖项目,因此我需要在构建新版本时更新我的​​ Nuget 包)。如果我忘记在 Git 中提交更改(包括 package.config 和项目文件),则会出现相同的问题(在发布模式下)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-07
      • 2013-07-30
      • 2014-11-23
      • 2020-06-05
      • 2017-01-09
      • 2023-04-10
      • 1970-01-01
      • 2017-07-14
      相关资源
      最近更新 更多