将外部 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不起作用“此页面上的脚本中发生错误”