2008-11-19 15 views
17

मैं अभी वाईएक्स के साथ शुरू कर रहा हूं क्योंकि मुझे हमारे सीआई सर्वर पर एक एमएसआई बनाने के लिए स्वचालित करने में सक्षम होना चाहिए। क्या किसी परियोजना के सभी निर्भरताओं को स्वचालित रूप से शामिल करने के लिए वैसे भी है?सभी निर्भरताओं सहित

उत्तर

10

heat.exe को "proj" एक्सटेंशन बेहतर हो रहा है। Heat एक स्वचालित फैशन में उत्पादन के लिए उपयोग करने के लिए तैयार नहीं है। शुरुआती संरचना को एक साथ रखने के लिए यह एक बहुत ही उचित तरीका है लेकिन दोहराए गए रनों के साथ सही चीज नहीं करता है (उदाहरण के लिए, घटक/@ गुड्स स्थिर नहीं हैं, फिर भी ...)।

जब उपरोक्त मुद्दों को heat.exe में हल किया जाता है तो इसे अपनी निर्माण प्रक्रिया में शामिल करने से निश्चित रूप से ऊपर की सभी समस्याएं बच जाएंगी। कोर टूलसेट में सबसे गंभीर बग तय होने के बाद यह बेहतर करने के लिए हमारी सूची पर है।

+0

10 मिनट पहले गर्मी की खोज हुई। निर्भरता सूची अब प्राप्त करें, इसलिए मुझे इसे टाइप करने की आवश्यकता नहीं है। आशाजनक लग रहा है: डी –

+0

यह एक पुराना उत्तर है, लेकिन मुझे उम्मीद है कि यह अब सत्य नहीं है और heat.exe को उत्पादन के उपयोग के लिए पर्याप्त स्थिर बनाया गया है .. :) – ostati

0

मेरे अनुभव में, विक्स अभी भी एक बहुत ही मैन्युअल प्रक्रिया है। आपको प्रत्येक निर्भरता को अकेले जोड़ना होगा - मुझे लगता है कि विचार यह था कि आप विक्स इंस्टॉलर का निर्माण उसी समय करेंगे जब आप अपनी परियोजना बना रहे हों और प्रत्येक आइटम को कोड में जोड़ रहे हों। इस तरह यह वापस जाने और परियोजना पर एक पूर्वदर्शी करने की तुलना में कम कठिन लग रहा है। यद्यपि यह वृद्धि के लिए निश्चित रूप से एक महान सुझाव होगा!

0

मैंने WIX में कुछ नहीं देखा है जो ऐसा कर सकता है, आपको उन सभी निर्भरताओं को जानना होगा जिन्हें आपके समाधान/परियोजना की आवश्यकता है। इस blog पढ़ें, अंदर एक उद्धरण है:

अपने स्रोत पास रखें और अपने निर्भरता करीब (। क्षमा याचना सूर्य जू)

सबसे अच्छा तरीका है मुझे यकीन है कि कुछ भी नहीं भुला दिया गया बनाने के लिए मिला एमएसआई, एक स्थापित स्थापित वर्चुअल पीसी पर इंस्टॉलर का परीक्षण करना था।

मैंने जो कुछ देखा है, उसके लिए सबसे नज़दीकी है, यह लड़का blog है।

अभी के लिए, हम इसे हाथ से करने के लिए अटक गए हैं।

0

मैंने अभी WIX के साथ शुरुआत की और सोचें कि WIXEdit (http://wixedit.sourceforge.net/) कई फ़ाइलों/डीएलएस जोड़ने के लिए चट्टानों ने आसानी से फ़ाइलों को प्राप्त करने के लिए विक्स के साथ अपनी निराशा को हल किया। बस अपनी फाइलों को व्यवस्थित रखें और फिर आयात फ़ोल्डर फ़ंक्शन का उपयोग करें। बेशक यह प्रति फ़ाइल एक घटक होने की नई 3.0 सिफारिशों का समर्थन नहीं करता है।

हीट अच्छी है और प्रति फ़ाइल एक घटक का समर्थन करता है। मेरी सूची के आगे कुछ स्वचालन प्राप्त करना है ताकि इन फ़ाइलों को स्वचालित रूप से एक ला विजुअल स्टूडियो अपडेट किया जा सके।

1

विंटेललेक्ट से paraffin पर एक नज़र डालें।

3

मैंने अभी भी WIX के साथ शुरुआत की और मैंने संदर्भों को स्वचालित रूप से जोड़ने के लिए एक त्वरित और गंदे चाल की। विचार है कि आप जिस पैकेज को पैकेज करना चाहते हैं उसके आउटपुट फ़ोल्डर में सभी .dll को स्कैन करना है।

अपने WIX परियोजना के पूर्व निर्माण में, जोड़ने

call "$(ProjectDir)GenerateDependency.bat" "$(SolutionDir)" "$(ProjectDir)Dependencies.wxs" 

अपने WIX युक्त

@echo off 
set SOLUTIONDIR=%1 
set OUTPUTFILE=%2 
echo Starting Dependency check... 
echo ^<?xml version="1.0" encoding="UTF-8"?^> > %OUTPUTFILE% 
echo ^<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"^> >> %OUTPUTFILE% 
echo ^<Fragment^> >> %OUTPUTFILE% 
echo  ^<ComponentGroup Id="MesDependance" Directory="INSTALLFOLDER"^> >> %OUTPUTFILE% 

for %%F in (%SOLUTIONDIR%WixServiceInstallerExample\bin\Debug\*.dll) do (
    echo "-- Adding %%~nxF" 
    echo  ^<Component Id="%%~nF"^> >> %OUTPUTFILE% 
    echo      ^<File Id="%%~nF" Name="%%~nxF" Source="%%~dpnxF" Vital="yes" KeyPath="yes" DiskId="1"/^> >> %OUTPUTFILE% 
    echo  ^</Component^> >> %OUTPUTFILE% 
) 
echo  ^</ComponentGroup^> >> %OUTPUTFILE% 
echo ^</Fragment^> >> %OUTPUTFILE% 
echo ^</Wix^> >> %OUTPUTFILE% 
echo Dependency check done. 

"WixServiceInstallerExample \ बिन \ डीबग" के अनुसार संशोधित परियोजना में एक GenerateDependency.bat फ़ाइल जोड़ें तुम्हारी जरूरत।यह soulhd उस प्रोजेक्ट का आउटपुट फ़ोल्डर है जिसे आप पैकेज करना चाहते हैं

नोट: सावधानी बरतें कि अक्सर विज़ुअलस्टूडियो गड़बड़ एन्कोडिंग के साथ हो। नोटपैड ++ के साथ इस फ़ाइल को बेहतर संपादित करें और सुनिश्चित करें कि यह एएनएसआई में है, यूटीएफ 8 नहीं।

यह एक निर्भरता उत्पन्न करेगा जो आप अपनी परियोजना में शामिल कर सकते हैं। यदि आप स्रोत नियंत्रण में हैं, तो इसे इससे बाहर कर दें।

प्रत्येक बिल्ड वास्तव में पैकेज बनाने से पहले निर्भर करता है। Dlls और निर्भरता। Wxs को पुनर्निर्माण करेगा।

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

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