有没有办法引用在 wix 代码上声明的文件,例如:
<DirectoryRef Id="MAIN_INSTALLLOCATION">
<Component Id="CMP_config_system" Guid="a430710e-a95b-48d7-acbe-3bf4e6b2c8fc">
<File Id="FILE_config_system" KeyPath="yes" Source="config_system.ini"/>
</Component>
</DirectoryRef>
例如,在用 C++ 编码的自定义操作中(见问号)
UINT __stdcall entryPoint(MSIHANDLE hInstall)
{
//...
LPWSTR filePath = NULL;
hr = WcaGetProperty(???, &filePath);
//...
}
那么这种方式可以根据不同的内容打开和编辑该文件吗?
编辑与@NC1 公开的相同方法,但使用 WiX API
// ...
const std::wstring APPDATA_DIR = L"AppDataDir";
const std::wstring CONFIG_SYSTEM = L"config_system.ini";
LPWSTR path = NULL;
hr = WcaGetProperty(APPDATA_DIR.c_str(), &path);
ExitOnFailure(hr, "Failed to get Path");
config_system_path = std::wstring(path) + CONFIG_SYSTEM;
//...