如何从 MSBUILD 脚本执行 Visual Studio 特定的 linker.exe

问题描述 投票:0回答:0

我遇到了在 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- 尝试使用 执行 linker.exe 来执行 linker.exe

因此,如果有人知道如何执行

正如 @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>

参考文档:

发布单个文件

ILMerge

msbuild visual-studio-2019 visual-studio-2022
© www.soinside.com 2019 - 2024. All rights reserved.