问题标签 [add-type]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PowerShell PSObject 在转换为 JSON 对象之前更改字段名称
我在 PowerShell 中有一个项目,我使用“Add-Type”创建了一个自定义类型。我想使用类,但我仅限于必须使用的系统上的 PowerShell 版本。
该对象被转换为 JSON 并使用 REST API 发送出去。为了避免一些命名问题,我最终在字段名称前加上了“”。我想在将它们发送到 API 之前将其删除。我认为进行重命名会很简单,但后来我意识到,如果我通过删除带有“”的任何内容来重命名 JSON 对象中的所有内容,我用于重命名的方法可能会导致问题。
这是自定义类型:
仅使用字符串 REPLACE 方法我会得到这个:
而不是这个:
这是我正在使用的方法:
我检查了 PSObject 提供的方法,但我只是不确定语法。如果可能的话,我想在转换为 JSON 之前更改现有对象,而不必创建 CLONE 或遍历 JSON 值。
c# - PS Add-Type 期间“找不到元文件 .dll”(C# 代码)
我想使用 Add-Type 在 PS 脚本中执行 C# 代码。但我收到:
Metadata file 'Microsoft.Azure.ServiceBus.dll' could not be found
。C# 代码使用名为“Microsoft.Azure.ServiceBus”的 NuGet 包。
我引用的程序集似乎不起作用。这是我的代码:
附言
C#
这个问题的根源是什么,我该如何解决?不幸的是,我对 PS 和 C# 都不是很熟悉。
c# - powershell中的多线程问题
[编辑 10/29/18] - 似乎(基于日志记录)parallel.foreach 函数没有等待返回值信息
下面是我用来拥有多线程 powershell 函数的代码。我正在利用 powershell 中的 add-type 函数在我的 Parallel.ForEach 的 powershell 代码中使用 c#。我遇到的问题是,有时这个函数不会在一个 dag 中列出我们所有的服务器,而其他时候它会列出。(它应该始终为每个服务器返回 1 个值)。
我已经通过在将它们传递给 Parallel.ForEach 函数之前将它们写入控制台来验证所有服务器都被馈送到 Parallel.ForEach 中,并且我已经验证它们在丢失时也不会作为 ae.InnerExceptions 回来服务器,但我不知道如何解决它。我找不到任何关于为什么会发生这种情况的一致性或模式,并且正在寻找如何解决这个问题或解决这个问题的想法?
powershell - 如何在 PowerShell 6 中添加一些类型(我可以在 PowerShell 5 中完成)
我写了一个脚本来显示一个消息框。它在 PowerShell 5 中运行良好,但在 PowerShell 6 中不运行。我怎样才能使它工作?
我写的脚本(摘录):
错误信息:
添加类型:找不到路径“C:\Users\Owner\System.Windows.Forms.dll”,因为它不存在。在 C:\Users\Owner\Desktop\sample\trans-search.ps1:8 char:6 + Add-Type -AssemblyName System.Windows.Forms + ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\Owner\System.Windows.Forms.dll:String) [添加类型],ItemNotFoundException + FullyQualifiedErrorId:PathNotFound,Microsoft.PowerShell.Commands.AddTypeCommand
谢谢您的帮助。
c# - 如何通过命令行在 powershell 中使用 Add-Type 以执行 VB.NET 或 C#(或 JScript.net)代码?
这是有关Add-Type的 MS 文档
所以我试图通过命令行添加类型:
或者
或者
或者
但是无论我尝试执行什么都会返回一个错误。是否可以通过cmd控制台调用powershell来添加类型?然后执行添加的方法?
powershell - Powershell在PSM1的类中添加类型
在 PS1 中,这有效
但是,将该类移动到 library.PSM1 文件中,这在 PS1
它在 ISE 中有效,但在从快捷方式运行时不在控制台中。我明白了Unable to find type [system.drawing.icon].
显然第一个 Add-Type 有效,我在 New-Object 上没有错误。那么为什么第二种加载失败呢?我还尝试将两个 Add-Type 行移出类,并移入模块文件的根目录,结果相同。起作用的是将这些行添加到 PS1 using module
(必须是第一个非标记行)和呼叫之间。那行得通,但是你没有一个自包含的类,这似乎有点糟糕。我在这里有什么误解?
如何创建一个使用 .NET 类型的自包含类并从模块文件中使用它?
wpf - PowerShell 中是否仍需要 Add-Type -AssemblyName PresentationFramework?
我有以下 PowerShell 代码:
如果我注释掉第一Add-Type
条语句,脚本仍然可以工作并显示窗口 UI。
上面的脚本来自于 2016 年的培训课程。我想知道是否Add-Type
由于 PowerShell 的变化而不再需要该语句?PowerShell 环境中是否默认包含有问题的程序集?我在 Windows 10 上使用 ISE 和 VS Code 进行了测试。
powershell - 确定类驻留在哪个模块中
我有一些代码在 ISE 中有效,但在脚本中失败。它在我使用的地方失败[System.Windows.Media.GlyphTypeface]::new()
,这是一种常见的情况,一个在 ISE 中自动加载的模块,但需要在脚本中单独加载。所以这就提出了一个普遍的问题,有没有办法从类型开始并确定需要什么模块?或者这是您只需要已经知道和/或能够挖掘 Microsoft 支持文档以获取信息的那些之一?
powershell - 在 PowerShell 7 中加载 [System.IO.MemoryMappedFiles]
我想在 PowerShell-7 上使用[System.IO.MemoryMappedFiles]和在 Windows 10 20H2 上运行的 .NetFramework 4.8(版本 528372);
并尝试将 DLL 加载到 PowerShell-7 控制台中。我的目标是使用[System.IO.MemoryMappedFiles]::CreateFromFile()创建大型二进制文件的视图。
以下基于Add-Type的“示例 3”和“示例 2”,并在 SO 中查看类似问题的答案,例如Unable to use System.IO.Compression.FileSystem.dll
但是,在PowerShell 7 (x64) 控制台上,Get-Member
返回“无法找到类型”错误,如下所示。
当我运行$AccType = Add-Type -AssemblyName "System.IO.MemoryMappedFiles" -PassThru
时,$AccType
包含以下内容,
运行Add-Type
命令后,当我进入
[系统.IO.内存
然后在 PS7 控制台输入 TAB 键,
[System.IO.MemoryMappedFiles
是自动完成的,但是当我进入时(请忽略下面的标题双引号。)
" [System.IO.MemoryMappedFiles]::
并输入 TAB 键,什么都没有完成。预加载的标准库,如
“[系统.IO.文件]::
完成方法
[System.IO.File]::AppendAllLine(
输入 TAB 键。