为了满足"乔尔测试"问题#2"你能一步构建一个构建吗?",我正在尝试完成一个候选版本构建脚本,从收集的文件集合中创建一个CD iso.由安装程序创建者生成.
似乎有许多好的工具(许多免费的)会创建ISO,但我需要找到一个可以在Windows命令行运行的工具,这样我就可以将它集成到由Cruise Control引发的NAnt构建脚本中.
构建环境是:
我一直在谷歌上搜索,但还没有运气.
有人有推荐吗?
我正在搜索一个库(或代码库),它允许使用.NET平台从CD/DVD创建ISO映像.
.NET框架本身是否支持ISO映像的创建?
我很感激任何建议.
如我的问题中所述使用PowerShell创建ISO映像:如何将IStream保存到文件?,在PowerShell中我创建一个IStream对象如下:
$is = (New-Object -ComObject IMAPI2FS.MsftFileSystemImage).CreateResultImage().ImageStream
Run Code Online (Sandbox Code Playgroud)
此对象是(PowerShell)类型System.__ComObject.不知怎的,PowerShell知道它是IStream:
PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IConnectionPoint]
False
PS C:\> $is -is [System.Runtime.InteropServices.ComTypes.IStream]
True
Run Code Online (Sandbox Code Playgroud)
但是,此类型的强制转换失败:
PS C:\> [System.Runtime.InteropServices.ComTypes.IStream] $is
Cannot convert the "System.__ComObject" value of type "System.__ComObject" to type "System.Runtime.InteropServices.ComT
ypes.IStream".
At line:1 char:54
+ [System.Runtime.InteropServices.ComTypes.IStream] $is <<<<
+ CategoryInfo : NotSpecified: (:) [], RuntimeException
+ FullyQualifiedErrorId : RuntimeException
Run Code Online (Sandbox Code Playgroud)
如何在不使用C#代码的情况下进行此转换?
更新:显然这种转换无法正常工作,正如x0n的回答所说的那样.
现在,我的目标是将此IStreamCOM对象传递给某些C#代码(使用相同的PowerShell脚本的一部分Add-Type),它将成为类型的.NET对象System.Runtime.InteropServices.ComTypes.IStream.那可能吗?如果没有,我有什么替代品?
基于C#的文件夹结构制作.ISO文件的最佳方法是什么?是否有DiscUtils以外的开源库?遇到DiscUtils的问题,我想尝试另一条路径.我有什么选择?我更喜欢开源但可能也愿意为解决方案买单.