Ich habe eine DACPAC-Datei, die in Visual Studio 2013 für ein SSDT-Projekt erstellt wurde. Dieses SSDT-Projekt definiert ein Post-Deployment-Skript, das entworfen wurde, um einige statische Daten in die veröffentlichten Tabellen zusammenzuführen, und ein Teil der Daten enthält ein Copyright-Symbol.Veröffentlichen von DACPAC-Datei mit MSDeploy, UTF8-Zeichen in Post-deploy-Skript sind verloren
Jetzt, wenn ich die Datenbank über Visual Studio veröffentliche, wird das Copyright-Symbol beibehalten und korrekt in die Zieltabelle zusammengeführt. Wenn ich dieselbe Datenbank (mit demselben dacpac- und Veröffentlichungsprofil) unter Verwendung von MSDeploy veröffentliche, wird das Copyright-Symbol in der Zieldatenbank als "?" Symbol. Ebenso, wenn ich Action:Script
anstelle von Action:Publish
verwende, enthält das generierte SQL-Skript ein "?" anstatt das Copyright-Symbol.
Es scheint, als ob das Skript, das Visual Studio generiert, UTF8-codiert ist, aber das Skript, das in den Dacpac gebrannt wird, verliert die UTF8-Kodierung. Hat jemand irgendwelche Ideen, wie man dieses Problem umgehen kann?
Haben Sie eine Codierung der Skriptdatei selbst überprüft. Wenn die SQL-Skriptdatei in ANSII gespeichert ist, speichern Sie sie als UTF8. –
Ja, ich überprüfte. Die Post-Deployment-Skriptdatei in Visual Studio ist tatsächlich in UTF-8 codiert. Ebenso wird die postdeploy.sql-Datei, die entpackt wird, wenn ich auf die .dacpac-Datei doppelklicke, ebenfalls UTF-8-codiert. Ich habe auch die Veröffentlichungsskriptdatei verglichen, die von Visual Studio generiert wird, und diejenige, die aus der .dacpac-Datei entpackt wurde. Die einzigen Unterschiede (im Post-Deploy-Bereich, erwähnenswert) waren die verlorenen Sonderzeichen. –