Mam plik DACPAC, który został zbudowany w Visual Studio 2013, dla projektu SSDT. Ten projekt SSDT definiuje skrypt po wdrożeniu przeznaczony do scalania niektórych danych statycznych w opublikowane tabele, a jedna część danych zawiera symbol praw autorskich.Publikowanie pliku DACPAC z MSDeploy, znaki UTF8 w skrypcie po wdrożeniu zostały utracone
Teraz, kiedy publikuję bazę danych za pomocą programu Visual Studio, symbol praw autorskich jest zachowywany i prawidłowo umieszczany w tabeli docelowej. Kiedy publikuję tę samą bazę danych (z tym samym profilem dacpac i publikować) przy użyciu MSDeploy, symbol praw autorskich jest scalany z docelową bazą danych jako "?" symbol. Podobnie, gdy używam Action:Script
zamiast Action:Publish
, wygenerowany skrypt SQL zawiera "?" zamiast symbolu praw autorskich.
Wygląda na to, że skrypt Visual Studio generuje kodowanie UTF8, ale skrypt upakowany w dacpac traci kodowanie UTF8. Czy ktoś ma pomysły na obejście tego problemu?
Czy sprawdziłeś kodowanie samego pliku skryptu. Jeśli plik skryptu SQL znajduje się w ANSII, zapisz go jako UTF8. –
Tak, sprawdziłem. Plik skryptu Post-Deployment w Visual Studio jest rzeczywiście zakodowany w UTF-8. Podobnie, plik postdeploy.sql, który zostanie rozpakowany po dwukrotnym kliknięciu pliku .dacpac, jest również kodowany w UTF-8. Porównałem również plik skryptu publikowania generowany przez program Visual Studio i ten, który został rozpakowany z pliku .dacpac. Jedyne różnice (w sekcji post-deploy, które warto wspomnieć) to utracone znaki specjalne. –