2010-08-24 3 views
2

installshield 2010에서 installscript를 통해 app.config 파일을 수정하는 방법 사용자가 선택한 서버를 기반으로 app.config 파일에서 sql 연결 문자열을 수정하고 싶습니다. 조기 도움을 받아야합니다.installscript를 통해 app.config 수정하기

답변

1

나는 연결 문자열을 변경하기 위해 자신의 installscript를 작성했습니다.

코드 스 니펫 :

function Update_AppConfig(hMSI) 
STRING  EXAMPLE_FILE,  EXAMPLE_DIR; 
STRING svLine; 
STRING svContent; 
number nvBuff,temp,nvFileHandle ; 
string szConnection,szServer,szFileName,szUser,szFilePath; 
long cchValueBuf; 
long length;        
begin    

EXAMPLE_FILE = "Example.exe.config"; 
EXAMPLE_DIR = INSTALLDIR; 

cchValueBuf = 2;   

MsiGetProperty(hMSI,"IS_SQLSERVER_SERVER",szServer,cchValueBuf); 

OpenFileMode (FILE_MODE_NORMAL);  

if (OpenFile (nvFileHandle, EXAMPLE_DIR, EXAMPLE_FILE) < 0) then 
     MessageBox ("OpenFile failed.", SEVERE); 
     abort;         
    endif; 

    while GetLine (nvFileHandle, svLine) = 0 
     svContent = svContent + svLine + "\r\n"; 
    endwhile; 

    if (CloseFile (nvFileHandle) < 0) then   
     MessageBox ("CloseFile failed.", SEVERE);  
    endif; 

    StrReplace (svContent, "{{SQLSERVERSETTING}}", szServer, 0);  


// Close the file.       

OpenFileMode (FILE_MODE_BINARY);  

if (OpenFile (nvFileHandle, EXAMPLE_DIR, EXAMPLE_FILE) < 0) then  
     MessageBox ("OpenFile failed.", SEVERE);   
     abort;       
    endif;   

    length = StrLength (svContent); 

    if (WriteBytes (nvFileHandle, svContent, 0, length) < 0) then 
     MessageBox ("WriteBytes failed.", SEVERE);   
    endif; 

    if (CloseFile (nvFileHandle) < 0) then 
     MessageBox ("CloseFile failed.", SEVERE); 
    endif;  

end;