2015-03-13 4 views
5

है मेरे पास एक एसएसडीटी परियोजना के लिए विजुअल स्टूडियो 2013 में एक डीएसीपीएसी फ़ाइल बनाई गई है। यह एसएसडीटी प्रोजेक्ट कुछ स्थैतिक डेटा को प्रकाशित तालिकाओं में मर्ज करने के लिए डिज़ाइन की गई एक पोस्ट-तैनाती स्क्रिप्ट को परिभाषित करता है, और डेटा के एक टुकड़े में कॉपीराइट प्रतीक होता है।पोस्ट-तैनाती स्क्रिप्ट में एमएसडीईएपी, यूटीएफ 8 अक्षरों के साथ प्रकाशन डीएसीपीएसी फ़ाइल

अब, जब मैं विजुअल स्टूडियो के माध्यम से डेटाबेस प्रकाशित करता हूं, तो कॉपीराइट प्रतीक संरक्षित होता है, और लक्ष्य तालिका में सही ढंग से विलय हो जाता है। जब मैं MSDeploy का उपयोग कर एक ही डेटाबेस (उसी dacpac और प्रकाशित प्रोफ़ाइल के साथ) प्रकाशित करता हूं, तो कॉपीराइट प्रतीक लक्ष्य डेटाबेस में "?" के रूप में विलय कर दिया जाता है प्रतीक। इसी तरह, जब मैं Action:Publish के बजाय Action:Script का उपयोग करता हूं, जेनरेट की गई SQL स्क्रिप्ट में "?" होता है कॉपीराइट प्रतीक के बजाय।

ऐसा लगता है जैसे स्क्रिप्ट विजुअल स्टूडियो उत्पन्न हो रहा है यूटीएफ 8 एन्कोडेड है, लेकिन डैपैक में पकाया जाने वाला स्क्रिप्ट यूटीएफ 8 एन्कोडिंग खो देता है। क्या किसी के पास इस मुद्दे के आसपास काम करने के बारे में कोई विचार है?

+1

क्या आपने स्क्रिप्ट फ़ाइल के एन्कोडिंग की जांच की है। यदि एसक्यूएल स्क्रिप्ट फ़ाइल एएनएसआईआई में है तो इसे यूटीएफ 8 के रूप में सहेजें। –

+0

हां, मैंने चेक किया। विजुअल स्टूडियो में पोस्ट-डिप्लॉयमेंट स्क्रिप्ट फ़ाइल वास्तव में यूटीएफ -8 में एन्कोड की गई है। इसी प्रकार, postdeploy.sql फ़ाइल जो अनपॅक हो जाती है अगर मैं .dacpac फ़ाइल को डबल-क्लिक करता हूं तो यूटीएफ -8 एन्कोडेड भी होता है। मैंने प्रकाशित स्क्रिप्ट फ़ाइल की तुलना भी की जो विजुअल स्टूडियो द्वारा उत्पन्न होता है और वह जिसे .dacpac फ़ाइल से अनपॅक किया गया है। केवल अंतर (पोस्ट-तैनाती अनुभाग में, उल्लेखनीय लायक) खो गए विशेष पात्र थे। –

उत्तर

0

क्या आप N के साथ स्ट्रिंग अक्षर को उपसर्ग करते हैं ताकि यह इंगित किया जा सके कि इसमें यूनिकोड स्ट्रिंग है? क्या आपका कॉलम nchar या nvarchar के रूप में परिभाषित किया गया है? Dacpac बनाने की प्रक्रिया उस भेद के आधार पर एक रूपांतरण कर सकती है जो आपके डेटा को गैर-यूनिकोड स्ट्रिंग के रूप में घोषित किया जाता है। यह आश्चर्य की बात नहीं है कि कॉपीराइट चरित्र इस रूपांतरण से बच नहीं पाएगा।

यूनिकोड बनाम चरित्र तारों के विवरण के लिए https://msdn.microsoft.com/en-us/library/ms179899.aspx देखें।

+0

हां, मैंने स्ट्रिंग मानों को एन 'के साथ प्रीफ़िक्स किया है, और VARCHAR (लेन) के विपरीत सभी प्रासंगिक प्रकारों को NVARCHAR (लेन) के रूप में घोषित किया है। अजीब चीज यह है कि अगर मैं एसएसडीटी परियोजना पर संदर्भ मेनू के माध्यम से एक प्रकाशित ऑपरेशन चलाता हूं तो विजुअल स्टूडियो ठीक काम करता प्रतीत होता है। यह तब होता है जब मैं एसकेलपैकेज या एमएसबिल्ड के माध्यम से डीएसीपीएसी को तैनात करता हूं कि चरित्र एन्कोडिंग गलत हो जाती है। –

0

मुझे एक ही समस्या थी। इस फ़ाइल को नोटपैड में खोलें और पुराने फ़ोल्डर को बदलने के लिए उसी फ़ोल्डर में यूनिकोड के रूप में सहेजें। फिर फिर से प्रकाशित करें। यह काम करना चाहिए।

संबंधित मुद्दे