有没有办法从 AzureDevOps 中的 YAML 管道内的 resx 文件生成 *.designer.cs 文件?

时间:2021-01-15 15:45:51

标签: c# asp.net azure-devops yaml

我想将 .NET 解决方案移至 AzureDevOps 并将其构建为 YAML 管道的一部分:

该解决方案包含一个 .resx 文件,需要在其上运行 PublicResXFileCodeGenerator 以生成 *.Designer.cs 文件。 即在 Visual Studio 中手动构建解决方案时,我右键单击该文件并选择“运行自定义工具”。

如果我在 AzureDevOps 中构建此解决方案,我目前会收到错误消息:

##[error]CSC(0,0):错误 CS2001:找不到源文件“D:\a\1\s\solution1\Translations\Translations.Designer.cs”。

问题: 我如何在 AzureDevOps 管道中使用 YAML 语句来实现这一点?

我希望可能有一种以某种方式调用自定义工具的方法。 [例如:如果我在网上搜索,我可以看到关于自定义工具的 msbuild - 但不是在 AzureDevOps 设置中。]

(如果我在我的开发 PC 上在 Translations\Translations.resx 上运行 resgen,我只会得到一个 Translations.resources 文件。需要采取一个步骤来执行此操作并创建一个 *.Designer.cs 文件,因此这看起来像不去。)

1 个答案:

答案 0 :(得分:0)

您可以使用 Resgen 工具生成 *.Designer.cs 文件。有关详细信息,请参阅 here

在 azure 管道中通过 Resgen 从 .resx 文件生成 .cs 文件。您只需要添加一个脚本任务即可运行 resgen 命令。

Resgen 工具可以在 windows-2019/vs2017-win2016 云代理的文件夹 C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools 中找到。见here

请参阅以下 powershell 任务中的示例。:

steps:
- powershell: |
    cd "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools"
   
    .\resgen.exe "$(system.defaultworkingdirectory)\path\to\myresxfile.resx"  /str:cs