用于构建为单个文件的 MSBuild Net 8 属性

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

我正在使用 Azure DevOps Server(本地),并尝试为 Net 8.0.204 构建解决方案(Windows 服务,C#)。

我已经让它工作了,它正在生成我可以在版本中使用的工件。

问题是,当我还在 Visual Studio 中使用发布向导时,在发布配置文件中,我可以选择将部署模式设置为“独立”、目标运行时和“生成单个文件”。这些创建一个仅包含几个文件的 bin 目录。

当我在 Azure DevOps 中运行构建时,我缺少这些设置,并且 bin 文件夹包含很多内容 - 我相信我需要将设置添加为 /P: MSBuild Arguments 下的参数,但找不到 -最新的例子。

有人有一些例子吗?我唯一的项目是用于 Web 项目,这是一个 Windows 控制台项目。

问候

更新我的解决方案

这是我最终得到的解决方案 - 在下面乔纳森的帮助下(已将他的帖子标记为答案)。

  1. 我需要使用创建一个新的发布配置文件 FolderPublish 选项 - 这在 bin 目录之外创建了一个发布文件夹(我需要记下)并设置 独立生成单个文件标志。

  2. 我还需要记下目标运行时(win-64)。代替 发布 xml (.pubxml) 文件设置为

    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    

    使用复数。我需要将相同的属性添加到我的项目中 (.csproj) 但作为复数。

    <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
    

    如果没有这个,构建之前的恢复步骤将失败 下载正确的运行时。

  3. 在msbuild步骤中,我需要添加以下两个参数 ms 构建参数行。

     -t:publish -p:PublishProfile=MyProfile.pubxml
    

    这两个参数都是必需的。

  4. 构建完成后,我的复制文件步骤复制了文件 从发布目录(如上所述)进入工件暂存 目录.

msbuild
1个回答
0
投票

创建或使用发布配置文件.pubxml 文件。在发布配置文件中,可以设置适当的标志。

可以使用

PublishProfile
属性将配置文件传递到 MSBuild。请注意,该属性需要不带 .pubxml 扩展名的文件名。

如果使用 dotnet CLI,指定

publish
目标和
PublishProfile
属性(对于名为“FolderProfile.pubxml”的文件)将如下所示:

dotnet publish -p:PublishProfile=FolderProfile

或者如果使用 MSBuild,则执行以下操作:

msbuild -t:publish -p:PublishProfile=FolderProfile
© www.soinside.com 2019 - 2024. All rights reserved.