Autorest.PowerShell生成模块编译失败:无效$host变量问题求助
解决Autorest.PowerShell生成代码的C#编译错误
问题描述
通过Swagger生成PowerShell模块时,执行Generate-PowerShellClient.ps1无异常,但运行build-module.ps1触发C#编译失败。定位到生成的BsnIPTablesCli.cs文件中存在C#不支持的格式字符串写法:$"{$host}{pathAndQuery}"。
原因分析
该写法违反C#字符串插值语法规则:在$""插值字符串中,变量直接用{变量名}包裹即可,无需额外添加$符号,{$host}属于非法语法。
解决方案
直接修改Autorest.PowerShell的代码生成模板,修正URL拼接的字符串生成逻辑:
- 将生成
{$host}的模板代码调整为{host},最终生成合法的C#插值字符串$"{host}{pathAndQuery}" - 修改完成后,重新运行
Generate-PowerShellClient.ps1生成新的客户端代码,再执行build-module.ps1即可通过编译
内容的提问来源于stack exchange,提问作者sorosh_sabz
相关产品推荐
相关产品推荐

