एक sql सर्वर 2012 sqlproj (SSDT डेटाबेस प्रोजेक्ट) में आप प्रकाशन प्रोफाइल का उपयोग करते हैं। आप अपने डेटाबेस प्रोजेक्ट पर राइट-क्लिक करके और 'प्रकाशित करें' चुनकर शुरुआत कर सकते हैं।
फिर आप वांछित विकल्प सेट कर सकते हैं और इन्हें अपने प्रोजेक्ट में तथाकथित प्रकाशन प्रोफ़ाइल में सहेज सकते हैं। इस प्रोफ़ाइल पर डबल-क्लिक करने से सही विकल्प सेट के साथ प्रकाशन विज़ार्ड लॉन्च हो जाता है।
अपनी प्रकाशित प्रोफ़ाइल में आप sqlcmd चर के लिए हार्ड-कोडित मान शामिल कर सकते हैं:
<ItemGroup>
<SqlCmdVariable Include="ProjectDirectory">
<Value>UNKNOWN</Value>
</SqlCmdVariable>
</ItemGroup>
यदि वांछित है, तो आप निर्माण के दौरान इन्हें गतिशील मानों के साथ अपडेट कर सकते हैं। आपके msbuild प्रोजेक्ट में:
<Target Name="SetProjectDirectoryInPublishXml">
<ItemGroup>
<Namespaces Include="nsMsbuild">
<Prefix>nsMsbuild</Prefix>
<Uri>http://schemas.microsoft.com/developer/msbuild/2003</Uri>
</Namespaces>
</ItemGroup>
<ItemGroup>
<SSDTPublishFiles Include="$(SolutionBinFolder)\**\*.publish.xml" />
</ItemGroup>
<MSBuild.ExtensionPack.Xml.XmlFile Condition="%(SSDTPublishFiles.Identity) != ''"
TaskAction="UpdateElement"
File="%(SSDTPublishFiles.Identity)"
Namespaces="@(Namespaces)"
XPath="//nsMsbuild:SqlCmdVariable[@Include='ProjectDirectory']/nsMsbuild:Value"
InnerText="$(MSBuildProjectDirectory)"/>
</Target>
इसके लिए XML को अपडेट करने के लिए एक्सटेंशन की आवश्यकता होती है। मैं msbuild एक्सटेंशन पैक का उपयोग करता हूं।
इस तंत्र का श्रेय जेमी थॉमसन