直接使用 COM 和 DOTNET 非常痛苦。DOTNET 仅允许您定位 .Net 3.5 及更低版本,并且所有二进制文件都需要是 COM 可见。这基本上意味着您需要为所有内容编写自己的 .Net 二进制文件,至少是包装器。
有一个库 (NetPhp) 建立在 COM 类之上,可以解决所有这些问题,因此您可以获得以下代码
$manager = new \NetPhp\Core\NetManager();
$manager->RegisterAssembly('mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089', 'mscorlib');
$manager->RegisterClass('mscorlib', 'System.IO.File', 'File');
$manager->RegisterClass('mscorlib', 'System.IO.FileOptions', 'FileOptions');
$file = $manager->Create('mscorlib', 'File');
$fileoptions = $manager->Create('mscorlib', 'System.IO.FileOptions')->Enum('Encrypted');
$file->Create("C:\\www\\prueba.tres", 2048, $fileoptions);