2008-10-17 9 views
19

के निर्माण के दौरान स्वचालित रूप से HTML दस्तावेज़ उत्पन्न करें Visual Studio में बिल्ड चरण के माध्यम से स्वचालित रूप से HTML दस्तावेज़ प्राप्त करने के लिए मुझे किन कदमों की आवश्यकता है? मेरे पास सभी टिप्पणियां हैं और comments.xml फ़ाइल जेनरेट की जा रही है, और Sandcastle इंस्टॉल है। मुझे सिर्फ यह जानने की जरूरत है कि दस्तावेज़ बनाने के लिए पोस्ट-बिल्ड चरण में क्या जोड़ना है।Sandcastle

+0

पाठ्यक्रम के अपने लक्ष्य निर्माण के समय के बारे में पता नहीं है, लेकिन बस यह उल्लेख करना चाहता था कि वास्तव में ऐसा कुछ नहीं है जिसे आप अपने नियमित बिल्ड-डीबग चक्र में शामिल करना चाहते हैं। –

+0

नहीं, जैसा कि मैंने इस उत्तर में उल्लेख किया है (http://stackoverflow.com/questions/211693/generate-html-documentation-automatically-during-a-build-with-sandcastle#211710) मेरे पास दस्तावेज़ों के लिए एक अलग निर्माण है। –

उत्तर

31

कुछ परिवर्तन किए गए हैं। Sandcastle में अब SandcastleBuilderConsole.exe शामिल है। इसके बजाय यह सादे पुराने MSBuild.exe का उपयोग करता है।

यहाँ दृश्य स्टूडियो के साथ इस एकीकृत करने के लिए मैं क्या किया है:

प्लेस यह आपकी पोस्ट-निर्माण में घटना:

IF "$(ConfigurationName)"=="Release" Goto Exit 

"$(SystemRoot)\microsoft.net\framework64\v4.0.30319\msbuild.exe" /p:CleanIntermediates=True /p:Configuration=Release "$(SolutionDir)ProjectName\doc\DocumentationProjectName.shfbproj" 

:Exit 

यह आपके प्रलेखन के निर्माण के लिए दृश्य स्टूडियो का कारण होगा, केवल जब आप का निर्माण "रिलीज" मोड में। इस तरह आप विकास के दौरान "डीबग" मोड में निर्माण करते समय हमेशा के लिए इंतजार नहीं कर रहे हैं।

एक जोड़े नोट:

  • मेरे प्रणाली, 64-बिट है अगर तुम्हारा तो framework64framework साथ रास्ते में msbuild.exe करने की जगह नहीं है।

  • जिस तरह से मैंने इसे सेटअप किया है, प्रत्येक परियोजना को मेरे समाधान में व्यक्तिगत रूप से दस्तावेज करना है। यदि आपके पास "सैंडकासल हेल्प फाइल बिल्डर" प्रोजेक्ट फ़ाइल है जिसमें कई परियोजनाएं एक साथ शामिल हैं, तो आप शायद ProjectName\ से छुटकारा पाना चाहते हैं और समाधान निर्देशिका में doc स्थानांतरित करना चाहते हैं। इस मामले में आप केवल उस परियोजना पर पोस्ट-बिल्ड इवेंट कमांड डालना चाहते हैं जो आपके समाधान में अंतिम बनाया गया है। यदि आप इसे प्रत्येक प्रोजेक्ट के लिए पोस्ट-बिल्ड इवेंट में डालते हैं तो आप निर्मित प्रत्येक प्रोजेक्ट के लिए अपने दस्तावेज़ों का पुनर्निर्माण करेंगे। कहने की जरूरत नहीं है, आप थोड़ी देर बैठे रहेंगे। व्यक्तिगत रूप से मैं प्रत्येक परियोजना को अलग-अलग दस्तावेज करना पसंद करता हूं, लेकिन यह सिर्फ मुझे है।

सैंडकैसल और "सैंडकैसल मदद फ़ाइल बिल्डर" स्थापित कर रहा है।

आप कैसे प्राप्त करने के लिए सैंडकैसल और "सैंडकैसल मदद फ़ाइल बिल्डर" सही ढंग से सेटअप है, तो निम्न चरणों का पालन नहीं जानते हैं:

  1. डाउनलोड करें और http://sandcastle.codeplex.com/ से सैंडकैसल स्थापित (यदि आप एक 64 बिट है प्रणाली, आप "सैंडकैसल मदद फ़ाइल बिल्डर" अगर आप किसी भी मिल MSHelp2 के बारे में (http://shfb.codeplex.com/ से स्थापित चेतावनी की अनदेखी एक वातावरण चर जोड़ने की आवश्यकता होगी। निर्देश here हैं।

  2. डाउनलोड करें और। आप इसे की आवश्यकता होगी, नहीं किया जाएगा।)

  3. एक बार जब आप इसे स्थापित कर लेंगे तो एक नया प्रलेखन प्रोजेक्ट बनाने के लिए "Sandcastle Help फ़ाइल निर्माता" का उपयोग करें। जब यह आपको पूछता है कि फ़ाइल को कहां से सहेजना है, तो इसे अपने समाधान/प्रोजेक्ट में आपके पास मौजूद दस्तावेज़ फ़ोल्डर में सहेजें। http://www.chevtek.com/Temp/NewProject.jpg

  4. एक नई परियोजना बनाने के बाद आपको यह चुनने की आवश्यकता होगी कि आप किस प्रकार के दस्तावेज़ बनाना चाहते हैं। एक संकलित विंडोज़ मदद फ़ाइल, एक वेबसाइट, या दोनों। http://www.chevtek.com/Temp/DocumentationType.jpg

  5. यदि आपने निर्देशिका में SHFB प्रोजेक्ट फ़ाइल सहेजी है जहां आप अपना दस्तावेज़ तैयार करना चाहते हैं तो आप इस चरण को छोड़ सकते हैं। लेकिन अगर आप जेनरेट किए गए दस्तावेज को कहीं और रखना चाहते हैं तो आपको आउटपुट पथ को एडजस्ट करना होगा। http://www.chevtek.com/Temp/OutputPath.jpg नोट: आउटपुट पथ (जो मुझे एक घंटे के लिए निराश करता है) के बारे में ध्यान में रखना एक बात यह है कि जब आपके पास वेबसाइट के दस्तावेज के प्रकार के रूप में जांच की जाती है, तो यह इसके आउटपुट पथ में सामग्री को ओवरराइट कर देगी। वे आपको यह बताने के लिए उपेक्षा करते हैं कि एसएचएफबी ने जानबूझकर आउटपुट पथ के हिस्से के रूप में कुछ फ़ोल्डर्स को शामिल करने से प्रतिबंधित कर दिया है। डेस्कटॉप एक ऐसा फ़ोल्डर है।आपका आउटपुट पथ डेस्कटॉप पर नहीं हो सकता है, डेस्कटॉप का उप-फ़ोल्डर भी नहीं। यह मेरे दस्तावेज़ों द्वारा या तो नहीं हो सकता है, लेकिन यह मेरे दस्तावेज़ों का सबफ़ोल्डर हो सकता है। यदि आपको अपने दस्तावेज़ों का निर्माण करते समय त्रुटियां मिलती हैं, तो आउटपुट पथ को बदलने का प्रयास करें और देखें कि क्या यह ठीक करता है या नहीं। इस पर विवरण के लिए http://shfb.codeplex.com/discussions/226668?ProjectName=shfb देखें।

  6. अंत में, आपको उस प्रोजेक्ट का संदर्भ जोड़ने की आवश्यकता होगी जिसे आप दस्तावेज़ बनाना चाहते हैं। यदि आप अलग-अलग परियोजनाएं कर रहे हैं जैसे मैं करता हूं, तो आपके द्वारा बनाई गई प्रत्येक SHFB प्रोजेक्ट फ़ाइल के लिए, आप संबंधित .CSPROJ फ़ाइल का संदर्भ लेंगे। अगर आपके पास अपने पूरे समाधान के लिए एक एसएचएफबी परियोजना है, तो आपको अपने समाधान के लिए एसएलएन फाइल मिल जाएगी। (यदि आप संकलित डीएलएल का संदर्भ देते हैं तो sandcastle भी काम करता है, लेकिन चूंकि आप इसे विजुअल स्टूडियो के साथ एकीकृत कर रहे हैं, मुझे लगता है कि इसके बजाय प्रोजेक्ट/सॉल्यूशन फाइलों को संदर्भित करने में अधिक समझदारी होती है। इसका मतलब यह भी हो सकता है कि इससे कोई फर्क नहीं पड़ता कि आप कौन सी परियोजना के बाद से यह DLLs के बजाय कोड का संदर्भ देते है पर बाद निर्माण घटना करते हैं, लेकिन यह सुरक्षित होना बेहतर है और पिछले परियोजना है कि बनाया गया है) http://www.chevtek.com/Temp/AddSource.jpg

  7. सहेजें परियोजना पर डाल दिया है और आप बंद कर सकते हैं "सैंडकैसल सहायता फाइल बिल्डर "। अब सब सेटअप है। बस प्रोजेक्ट प्रोजेक्ट फ़ाइल को उपयुक्त फ़ोल्डर में रखना सुनिश्चित करें कि बैच कमांड पोस्ट-बिल्ड ईवेंट में इंगित करें।

मुझे आशा है कि मेरा छोटा ट्यूटोरियल आपकी मदद करेगा! मेरे लिए किसी भी सभ्य ट्यूटोरियल को ढूंढना बहुत मुश्किल था, जो मुझे दिखाता है कि कैसे sandcastle का उपयोग करें, इसे अकेले दृश्य स्टूडियो के साथ एकीकृत कैसे करें। उम्मीद है कि भविष्य में Google खोज इस प्रश्न को चालू कर देगी।

6

मैं आपको Codeplex से Sandcastle सहायता फ़ाइल निर्माता स्थापित करने की सलाह देता हूं।

आप इसे कमांड लाइन से चला सकते हैं, उदा। पोस्ट-बिल्ड इवेंट से। सबसे सरल कमांड लाइन है:

<install-path>\SandcastleBuilderConsole.exe ProjectName.shfb 

सैंडकासल बहुत धीमा है, इसलिए मैं इसे केवल रिलीज बिल्ड के लिए चलाता हूं। यदि पहला तर्क "रिलीज है तो बैच फ़ाइल के अंदर आप परीक्षण कर सकते हैं

CALL "$(ProjectDir)PostBuild.cmd" $(ConfigurationName) 

: ऐसा करने के लिए, निम्नलिखित की तरह एक आदेश कुछ है, जो एक बैच फ़ाइल के लिए विन्यास नाम गुजरता के साथ एक घटना के बाद बिल्ड बनाने "और यदि ऐसा है तो SandcastleBuilderConsole.exe चलाएं।

+0

मैं इसे पहले से ही पोस्ट-बिल्ड स्क्रिप्ट में करता हूं, मैं यह सुनिश्चित करने के लिए कॉन्फ़िगरेशन नाम की जांच करता हूं कि यह "दस्तावेज़ीकरण" है (मेरे पास 3 कॉन्फ़िगरेशन, डीबग, रिलीज और प्रलेखन है)। –

+0

भी बेहतर। मतलब है कि आप रिलीज बना सकते हैं दस्तावेज़ के बिना तेजी से बनाता है। – Joe

0

मुझे यह स्वीकार करना होगा कि मुझे सैंडकासल का वर्तमान संस्करण थोड़ा कम लगता है; बड़ी परियोजनाओं के लिए यह काफी धीमी है, और इसे एकीकृत करना आसान नहीं है (क्योंकि यह अभी भी शुरुआती है)।

नियमित उपयोग के लिए, मुझे वास्तव में डीएल और एक्सएमएल फाइलों के साथ एक फ़ोल्डर में परावर्तक को इंगित करना आसान लगता है - आईआईआरसी, यह आपके द्वारा नेविगेट करते समय एक्सएमएल फ़ाइल लोड करेगा।

प्लस मैं लगभग हमेशा परावर्तक वैसे भी खोल दिया है ...

[संपादित करें] जाँच की, और हाँ - एक्सएमएल टिप्पणियाँ disassembler पैनल में दिखाने

+1

मैं एचटीएमएल दस्तावेज उत्पन्न करना चाहता हूं ताकि मैं इसे अपनी आंतरिक देव साइट पर रख सकूं। –

+0

जैसा आपको पसंद है। सैंडकैसल का मुख्य उपयोग मैं आईएसवी के साथ देख सकता हूं; आंतरिक उपयोग के लिए, मुझे सिर्फ एक नौसेना के तरीके में टिप्पणियां मिलकर खुशी हुई है जिसमें वीएस शामिल नहीं है ... परावर्तक मुझे यह देता है ;-p –

+0

वैसे यह सेटअप करने के लिए काफी दर्द की तरह दिख रहा है तो संभावना है कि यह हो रहा है पीछे छोड़ दिया;) –

0

इन स्थापित करें:

NDoc: http://prdownloads.sourceforge.net/ndoc/NDoc-v1.3.1.msi?download

एचटीएमएल सहायता कार्यशाला: http://www.microsoft.com/downloads/details.aspx?FamilyID=00535334-c8a6-452f-9aa0-d597d16580cc&displaylang=en

फिर उत्पन्न करने के लिए NDocConsole.exe कमांड लाइन का उपयोग करें या तो MSDN या एच एम रूप में प्रलेखन:

@c: \ कार्यक्रम ~ 1 \ NDoc \ NDocConsole.exe MyCode.dll, MyCode.xml -Documenter = MSDN-एच एम

मैं अपने आप को एक बाहरी उपकरण के लिए बना दिया है इसने इसे एक शॉर्टकट दिया, लेकिन जैसा कि पिछले पोस्टर ने कहा था कि आप इसे पोस्टबिल्ड इवेंट में लगा सकते हैं और वहां आप जा सकते हैं।

(पी एस मैं अब कुछ वर्षों के लिए ऊपर सेटअप का उपयोग किया गया है और इसके साथ बहुत खुश हूँ) के रूप में ऊपर सुझाव यह करने के लिए एक आसान तरीका है

+2

एनडीओसी पूरी तरह से .NET 2.0 का समर्थन नहीं करता है और मैं .NET 3.5/Silverlight के साथ टूल का उपयोग करूँगा (इसलिए मूल प्रश्न "sandcastle" क्यों कहा जाता है)। –

1

उपयोग कर रहा है सैंडकैसल मदद फ़ाइल बिल्डर। कमांड लाइन से निर्माण प्रक्रिया में कुछ बदलाव किए गए हैं और अब इन परियोजनाओं को SandcastleBuilderConsole.exe के बजाय MSbuild के साथ बनाया जा सकता है। तो तुम सब करने की है: के बाद से यह सवाल पूछा गया था

MSBuild.exe ProjectName.shfb

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