首要任务:Visual Studio 安装项目非常有限,您最好寻找功能更强大的部署工具/框架:Application setup 。
仅限 NTFS:这听起来很奇特。现在甚至不可能在 NTFS 以外的任何设备上安装 Windows? From superuser.com:“Windows Vista 及更高版本 不会安装在 FAT32 分区上,只能安装在 NTFS 分区上。这可能是由于使用了符号链接 ( FAT32 不支持)。”我没有 MSDN 链接供您验证,但我很确定以上内容是正确的。
内置 MSI 功能:MSI 中可能有一个内置属性将设置为系统驱动器的文件系统。我不熟悉任何此类属性。
自定义操作:如果您使用的是 Windows XP,我想您需要自定义操作,然后调用 WMI 或直接通过 Win32 API 来确定文件系统到底是什么。
Win32:带有一些用于 Win32 检查文件系统的示例模型代码的答案:
Determine what filesystem a partition is of。用VS2017测试的内联版本,C++控制台项目:
#include "stdafx.h"
#include "Windows.h"
#define WIN32_LEAN_AND_MEAN // Exclude rarely used stuff from Windows.h (Crypto stuff?)
int main()
{
WCHAR FSType[512];
if (GetVolumeInformationW(L"C:\\", NULL, 0, NULL, NULL, NULL, FSType, ARRAYSIZE(FSType))) {
MessageBox(NULL, FSType, L"File System:", MB_OK);
// TEXT("File System:") instead of L"File System:" if need be?
}
}
WMI:你应该可以从Win32_LogicalDisk获取信息:
SELECT FileSystem FROM Win32_LogicalDisk WHERE DeviceID='C:'
FileSystemObject:我忘记了可以使用 COM 脚本运行时:
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive(fso.GetDriveName("C:"))
MsgBox drive.FileSystem