我遇到了在 C# 项目 (.csproj) 构建期间调用“linker.exe”的情况。如果我使用 Visual Studio 2019 构建 C# 项目,那么我想要执行 Visual Studio 2019 链接器,或者如果我使用 Visual Studio 2022 构建,那么我想要执行 Visual Studio 2022 链接器。我尝试过以下方法,但都无法找到 Visual Studio 特定的 link.exe。
1- https://learn.microsoft.com/en-us/visualstudio/msbuild/link-task?view=vs-2022 它失败并抛出错误 - 错误 MSB4018: Microsoft.Build.Shared.InternalErrorException: MSB0001: 内部 MSBuild 错误: link.exe 意外地不是根路径。无法找到 linker.exe。
2- 尝试使用
因此,如果有人知道如何执行
正如 @Jonathan 所说,“此任务仅在使用 C++ 构建系统时可用。”
link.exe
特定于 Visual Studio 中的 C++ 项目。对于 Visual Studio 中的 C# 项目,您通常不使用 link.exe
。
作为替代方案,如果您想将目标文件合并为单个可执行文件,您可以检查以下方法:
1.使用
Single-file deployment
功能。
<PropertyGroup>
<OutputType>Exe</OutputType>
<PublishSingleFile>true</PublishSingleFile>
</PropertyGroup>
2.使用
ILMerge
<Target Name="ILMerge">
<!-- the ILMergePath property points to the location of ILMerge.exe console application -->
<Exec Command="$(ILMergeConsolePath) /out:Merged.dll File1.dll File2.dll" />
</Target>
参考文档: