2015-10-27 124 views
0

我的NSIS腳本存在一些問題。我嘗試修改配置文件中的connectionString。NSIS安裝程序(Unicode)寫入XML文件而不是「<」「<」

我在XML文件不是「<」或「>」,但兩個「& LT;」試圖從NSIS(ANSII & Unicode)的兩個編譯器以正確的插件..在這兩種情況下(沒有&和l之間的空間)。

我使用nsisXML作爲插件。

這裏我的代碼,我試了一下:

nsisXML::create 
nsisXML::load "$INSTDIR\InvoiceConfigurator.exe.config" 
nsisXML::select '/configuration/connectionStrings' 
IntCmp $2 0 notFound 
nsisXML::setText '<add name="InvoiceConfigurator.Properties.Settings.mdis_dbConnectionString" connectionString="Data Source=$DataBaseInstance;Initial Catalog=$DataBaseName;User ID=$DataBaseUser;Password=$DataBasePw;" providerName="System.Data.SqlClient" />' 
nsisXML::save "$INSTDIR\InvoiceConfigurator.exe.config" 
Goto end 
notFound: 
DetailPrint "InvoiceConfigurator.exe.config has not been adjusted!" 
end: 

在DetailPrint該消息未顯示!

回答

0

相應的插件主頁(http://wiz0u.free.fr/prog/nsisXML/)這個工具不能將子節點插入爲像JavaScript這樣的文本。 您應該手動插入每個節點和屬性。這樣的事情:

nsisXML::create 
nsisXML::load "$INSTDIR\InvoiceConfigurator.exe.config" 
nsisXML::select '/configuration/connectionStrings' 
IntCmp $2 0 notFound 
nsisXML::createElement "add" 
nsisXML::setAttribute "name" "InvoiceConfigurator.Properties.Settings.mdis_dbConnectionString" 
nsisXML::setAttribute "connectionString" "Data Source=$DataBaseInstance;Initial Catalog=$DataBaseName;User ID=$DataBaseUser;Password=$DataBasePw;" 
nsisXML::setAttribute "providerName" "System.Data.SqlClient" 
nsisXML::appendChild 
nsisXML::save "$INSTDIR\InvoiceConfigurator.exe.config" 
Goto end 
notFound: 
DetailPrint "InvoiceConfigurator.exe.config has not been adjusted!" 
end: 
+0

謝謝你的答案塞爾,我會盡快嘗試! – JamesnxD

+0

適合我! – JamesnxD

相關問題