【问题标题】:Add external C# script to PowerShell script as source将外部 C# 脚本作为源添加到 PowerShell 脚本
【发布时间】:2021-12-26 02:55:36
【问题描述】:

我有一个使用Add-Type-TypeDefinition 的PowerShell 脚本,我想定义$Source = script.cs,而不是定义$Source = @""@

这可能吗?如果可以,如何去做?

$Source = Get-Content -Path $PSScriptRoot\script.cs -Raw

Add-Type -ReferencedAssemblies 'System', 'System.Runtime.InteropServices' -TypeDefinition $Source -Language CSharp

然后我在 PS 脚本中使用 C# 脚本中的任何内容。我确实相信这是目前仅有的两个重要领域

【问题讨论】:

  • $Source = Get-Content $PSScriptRoot\script.cs -Raw -- 假设“script.cs”与 PoSh 脚本位于同一文件夹中。

标签: c# powershell


【解决方案1】:

Get-Content 可以获取文件的内容并将其用作字符串。这是documentation 的链接。例如:

$Source = Get-Content -Path .\path\to\script.cs -Raw

【讨论】:

  • 感谢您和@zett42。不过,我确实需要问一下,这是否会使Add-Type 变得多余?我现在收到一条错误消息 Add-Type : Cannot add type. The type name '...' already exists.
  • 您能否详细介绍一下您是如何使用 Add-Type 的?
  • 我编辑了问题
  • 它不会使Add-Type 变得多余。 Get-Content 只是将文件的内容存储为字符串。仔细检查您在脚本中定义的类型是否不存在。
  • 您是否尝试过使用Add-Type -Path <Path\to\script.cs>
猜你喜欢
  • 2022-06-11
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 1970-01-01
  • 2012-10-05
  • 1970-01-01
  • 2011-12-31
  • 2019-04-12
相关资源
最近更新 更多