无法在PackageReference中使用“MSBuild.ILMerge.Task”

问题描述 投票:4回答:2

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

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
2个回答
0
投票

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

这解决了我。

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


0
投票

我有同样的问题。在我的情况下它由于以下原因而出现(与我的Nuget包中的一些更新有关):

  • 有时我的项目文件中没有条件来处理Nuget包。当我更新我的Nuget包时,这些项目文件已更新,我的所有条件都被覆盖。我在Git中使用diff工具找到了这个问题并手动添加我的条件然后一切正常。
  • 有时我需要更新我的Nuget包(我的解决方案包括多个依赖项目,因此我需要在构建新版本时更新我的​​Nuget包)。如果我忘记在Git中提交我的更改(包括package.config和项目文件),则会出现相同的问题(在发布模式下)。
© www.soinside.com 2019 - 2024. All rights reserved.