7

SSDT プロジェクト用に、Visual Studio 2013 でビルドされた DACPAC ファイルがあります。この SSDT プロジェクトは、一部の静的データをパブリッシュされたテーブルにマージするように設計されたデプロイ後スクリプトを定義し、データの 1 つに著作権記号が含まれています。

これで、Visual Studio を介してデータベースを公開すると、著作権記号が保持され、ターゲット テーブルに正しくマージされます。MSDeploy を使用して同じデータベースを (同じ dacpac とパブリッシュ プロファイルで) パブリッシュすると、著作権記号が "?" としてターゲット データベースにマージされます。シンボル。同様に、Action:Script代わりにを使用するとAction:Publish、生成された SQL スクリプトに「?」が含まれます。著作権記号ではなく。

Visual Studio が生成しているスクリプトは UTF8 でエンコードされているように見えますが、dacpac に焼き付けられたスクリプトは UTF8 エンコードを失います。この問題を回避する方法を知っている人はいますか?

4

2 に答える 2

0

NUnicode 文字列が含まれていることを示すために、文字列リテラルの前に を付けますか? あなたの列は または として定義されていますncharnvarchar? dacpac を作成するプロセスは、データが非 Unicode 文字列として宣言されているという区別に基づいて変換を実行する場合があります。著作権文字がこの変換に耐えられないことは驚くべきことではありません。

Unicode と文字列の詳細については、https://msdn.microsoft.com/en-us/library/ms179899.aspxを参照してください。

于 2015-08-27T15:16:25.393 に答える