access .NET framework tools from powershell



如何从Powershell访问多个.NET Framework工具?这些工具列在以下链接中: https://learn.microsoft.com/en-us/dotnet/framework/tools/。

我发现这些工具位于以下路径下:

C:Program Files (x86)Microsoft SDKsWindowsv10.0AbinNETFX 4.6.1 Tools

如何启动脚本,以便我们可以执行以下操作:

  1. 确定是否安装了 .NET 框架工具。

2.如果未安装,请安装并解压缩已安装的路径。

  1. 转到路径并使用工具以供进一步使用。

今天,Powershell脚本的制定方式要求用户交互指向.NET框架工具之一,例如CorFlags.exe。这个想法是删除此交互并通过 powershell 脚本查找文件(如果已安装 .NET 框架工具(,或者先安装它,然后再找到它。

$CorFlagsExe = (Find-FileDialog -Title "Select CorFlags.exe." -InitialDirectory "C:Program Files (x86)Microsoft SDKsWindowsv10.0AbinNETFX 4.6.1 Tools" -ExtensionFilter "CorFlags.exe")

foreach($f in $Files)
{
& $CorFlagsExe $f.FullName /32BITREQ- /nologo
}

基本方法非常简单

加载所需的 dll。对于此示例,使用 itext dll。在您的情况下,您需要确定哪个 netfx dll 具有您需要执行要执行的操作的 netfx 类

[Reflection.Assembly]::LoadFile(:C:fooitext.kernel.dll") | out-null

示例:实例化 itext PdfWriter 对象。ctor 需要一个完全限定的 pdf 文件名。在您的情况下,一旦你知道你需要哪个netfx类,你需要找到类文档并确定你想要实例化的对象需要哪个ctor。

[itext.kernel.pdf.PdfWriter]$pdfWriter = New-Object itext.kernel.pdf.PdfWriter("fully qualified pdf file name")

涉及对象方法的示例。在您的情况下,研究类文档以了解您需要使用哪些方法和属性来执行您想要做的事情

$pdfWriter.close()

这是一个微不足道的例子,但它应该让你开始。

这就是添加类型 cmldet 的用途。

Add-Type 是在 PowerShell 2.0 中添加的,因此在此之前,Assembly::Load 方法是将程序集添加到命名空间的唯一方法。自PowerShell 3x及更高版本以来,它得到了改进。

将 .NET Framework 类型添加到 PowerShell 会话。如果 .NET 框架 类被添加到具有添加类型的PowerShell会话中,这些对象 然后可以实例化(使用新对象(,就像任何 .NET 一样 框架对象。

Add-Type -AssemblyName accessib* -PassThru

至于你是否使用"Nova Sys Eng"突出显示的添加类型,下面有一篇关于该主题的好文章。

PowerShell 中的 Add-Type vs. [reflection.assembly]

还有一个未记录的"using assembly"命令(尽管在 ps 6 及更高版本中,您必须特殊到 dll 的路径,因为不再有 GAC(。

using assembly System.Windows.Forms
using namespace System.Windows.Forms
[messagebox]::show('hello world')

最新更新