将外部 C# 脚本作为源添加到 PowerShell 脚本

Posted

技术标签:

【中文标题】将外部 C# 脚本作为源添加到 PowerShell 脚本【英文标题】:Add external C# script to PowerShell script as source 【发布时间】: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 脚本位于同一文件夹中。 【参考方案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>

以上是关于将外部 C# 脚本作为源添加到 PowerShell 脚本的主要内容,如果未能解决你的问题,请参考以下文章

c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”

添加外部脚本后如何读取源 URL 的响应?

Cordova 5.3.1 和 iOS9 平台 - 我无法从外部源加载图像和脚本

如何将外部脚本添加到 vue 组件?

如何将外部 JS 脚本添加到 VueJS 组件?

使用外部 CSS 文件将 jQuery UI 添加到 Greasemonkey 脚本失败