2013-07-04 8 views
5

एमएससी और इकाई फ्रेमवर्क कोड पर स्विच करने वाले एएसपीनेट वेबफॉर्म से आने वाले पहले दृष्टिकोण में अब मेरे पास एक प्रश्न है। मैं उत्पादन के लिए तैनात करने के लिए अपने पर्यावरण को कैसे स्थापित कर सकता हूं?इकाई फ्रेमवर्क कोड के साथ उत्पादन में तैनात कैसे करें

मैं विजुअल स्टूडियो 2012 का उपयोग कर रहा हूं और एक वेब तैनाती पैकेज तैनात करता हूं। स्थानीय रूप से मेरे पास एसक्यूएल एक्सप्रेस है और उत्पादन में मेरे पास SQL ​​Server 2008 है।

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

  • देव में प्रारंभिक प्रवास बनाएँ:

    मैं करने की कोशिश की।

  • अद्यतन डेटाबेस स्थानीय रूप से
  • स्क्रिप्ट उत्पन्न करें, अद्यतन-डेटाबेस -script -sourcemigration: InitialCreate
  • उत्पादन
  • में इस स्क्रिप्ट को लागू उत्पादन के लिए आवेदन तैनात

यह सही दृष्टिकोण है? मेरे माइग्रेशन के बारे में जो स्थानीय रूप से चलेंगे, क्या वे मेरे माइग्रेशन कोड के कारण तैनात होने पर उत्पादन में नहीं होंगे?

Global.asax में

Migrator.RunMigrations(); 

जहां RunMigrations इस

public class Migrator 
    { 
     public static void RunMigrations() 
     { 
      var migrator = new Configuration(); 
      var dbMigrator = new System.Data.Entity.Migrations.DbMigrator(migrator); 
      if (dbMigrator.GetPendingMigrations().Any()) 
      { 


       dbMigrator.Update(); 

      } 
     } 
    } 

उत्तर

2

आप के साथ Web Setup Project (स्थापना के लिए एक MSI कस्टम क्रिया की आवश्यकता है) कर सकते हैं की तरह एक कस्टम Migrator कक्षा में एक स्थिर तरीका है :

डेटाबेस को अद्यतन करने का वास्तविक कार्य migrate.exe उपकरण द्वारा किया जा सकता है। एमएसआई पैकेज को चलाने के लिए इसे एक चुनौती के रूप में ठीक से बदल दिया गया। मैंने पहले इंस्टॉलेशन पैकेज में migrate.exe को सिस्टम के असेंबली के साथ बिन निर्देशिका में तैनात करने के लिए शामिल किया था। वेब सेटअप परियोजनाओं में एक कस्टम कार्रवाई के रूप में exe फ़ाइल चलाने के लिए समर्थन है। दुर्भाग्य से मैं काम करने के लिए migrate.exe नहीं मिल सका जब तक कि कार्यशील निर्देशिका बिन निर्देशिका में सेट नहीं की गई थी। कस्टम क्रियाओं के लिए कार्य निर्देशिका डिफ़ॉल्ट रूप से c: \ windows \ system32 है। इसे संभालने के लिए, एक छोटी vb-script का उपयोग किया गया था।

http://coding.abel.nu/2012/04/update-database-msi-custom-action/

अद्यतन:

मैं this और this और this, हो सकता है मदद नहीं मिली।

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