texto - modificar archivo txt c#
Wix: Escribir archivo en acción personalizada (2)
Tengo un problema con wix y gestioné acciones personalizadas: en mi acción personalizada, creo un archivo y lo guardo en la ruta INSTALLLOCATION . Parece que funciona, no se lanza ninguna excepción. Pero después de la instalación, el archivo recién creado no existe en INSTALLLOCATION .
Archivo WiX:
<CustomAction Id="SetInstallPath" Property="CreateTimeStamp" Value="[INSTALLLOCATION]"
Execute="immediate"/>
<CustomAction Id="CreateTimeStamp" BinaryKey="SetupActions.dll"
DllEntry="CreateTimeStampFile" Execute="deferred" Return="check"/>
<InstallExecuteSequence>
<Custom Action="SetInstallPath" Before="InstallFinalize"/>
<Custom Action="CreateTimeStamp" Before="InstallFinalize"/>
</InstallExecuteSequence>
Custom-Action-Methode:
...
var keys = new string[session.CustomActionData.Keys.Count];
session.CustomActionData.Keys.CopyTo(keys, 0);
var cad = keys[0];
var filepath = cad + "myfile.xml";
File.Create(filepath);
...
Alguien una idea?
Editado: después de la publicación de Scott Boettger y editado el contenido del archivo wix.
Creo que tus acciones personalizadas deben estar entre InstallInitialize e InstallFinalize. Prueba esto:
<InstallExecuteSequence>
<Custom Action="SetInstallPath" After="InstallInitialize"/>
<Custom Action="CreateTimeStamp" Before="InstallFinalize"/>
</InstallExecuteSequence>
No creo que tu configuración sea correcta. Estos son algunos de los problemas:
- No debe usar propiedades privadas en InstallExecuteSequence (CREATE_TIME_STAMP es mejor que CreateTimeStamp porque es una propiedad pública).
- Está configurando la propiedad CreateTimeStamp y leyendo CustomActionData dentro de su acción personalizada. Debe establecer la propiedad CustomActionData en la ruta INSTALLLOCATION.
- Como su acción personalizada es crear un archivo en la carpeta de instalación, debe ejecutarse como diferido y el atributo Suplantar se debe establecer en "no". De esta manera tendrá suficientes privilegios para crear el archivo.
Intente hacer estas modificaciones y vea si el problema persiste.