验证安装目录为FAT

时间:2018-08-01 21:49:39

标签: visual-studio visual-studio-2017 windows-installer installer

我想知道如何设置一种方法来验证安装目录是FAT / FAT32 / exFAT /没有USB日记帐的任何USB。

我认为这是这里的东西:Image

我找不到我想要做的任何文档。我会尝试在程序中直接添加一些支持,但是通过检查可能会导致问题。

1 个答案:

答案 0 :(得分:0)

第一件事 :Visual Studio安装项目非常有限,您最好寻找功能更强大的部署工具/框架: {{3 }}


仅NTFS :听起来很奇怪。现在,除了NTFS之外,甚至不可能在其他任何设备上安装Windows吗? Application setup:“ Windows Vista和更高版本 不会安装在FAT32分区上,而只能安装在NTFS分区上。这可能是由于使用符号链接(在FAT32中不受支持)。“我没有MSDN链接供您验证,但我可以肯定以上内容是正确的。


内置MSI功能 :MSI中可能有一个内置属性,它将被设置为系统驱动器的文件系统。我不熟悉任何此类属性。

自定义操作 :如果您使用的是 Windows XP ,我想您需要自定义操作,然后再调用 WMI 或直接通过 Win32 AP I来确定文件系统的真正含义。

Win32 :一个带有文件系统Win32检查的样例代码的答案: From superuser.com 。内联版本已通过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