สร้างการตั้งค่าแอปพลิเคชันใน Visual Studio 2013


90

ฉันมีโครงการที่พร้อมจะสร้างอยู่แล้ว ขณะนี้ฉันใช้ Visual Studio 2013

แต่ฉันไม่รู้วิธีสร้างการตั้งค่า MSI ใน Visual Studio 2013 แต่สำหรับ Visual Studio 2010 มีบทช่วยสอนมากมายที่พูดถึงวิธีสร้างการตั้งค่าใน Visual Studio 2010

  • หมายความว่าฉันต้องติดตั้ง Visual Studio 2010 เพื่อสร้างการตั้งค่าแอปพลิเคชันสำหรับโครงการของฉันหรือไม่

  • วิธีที่ง่ายที่สุดในการสร้างการตั้งค่าแอปพลิเคชันใน Visual Studio 2013 คืออะไร


2
ลองใช้Windows Installer XML (WIX)ซึ่งสามารถปรับแต่งและขยายได้อย่างมากนอกจากนี้คุณยังสามารถรวมเข้ากับโครงสร้าง CI ของคุณ โครงการการตั้งค่าแอปพลิเคชันถูกลบออกในปี 2555 คุณสามารถใช้ Installshield SE ที่รวมอยู่ในจุดเดียวได้หากคุณยังต้องการตัวติดตั้งที่รวดเร็วและสกปรก ใช้ WIX ในปี 2013
Mgetz

VS 2012 และหลังจากไม่มีโครงการปรับใช้เหมือนในปี 2010
kostas ch.

1
คลิกครั้งเดียวได้ยังไงครับ @Mgetz? และฉันจะใช้คลิกครั้งเดียวได้อย่างไร?
Kaoru

@Kaoru ฉันไม่เคยมี Clickonce ทำงานได้อย่างน่าเชื่อถือใน VS เวอร์ชันใด ๆ ดังนั้นฉันจะไม่ได้รับความช่วยเหลือมากนัก แต่ในทางทฤษฎีมันจะได้ผล
Mgetz

2
Clickonce มีลักษณะที่ค่อนข้างแปลก: คุณต้องดำเนินการติดตั้งเวอร์ชันใหม่จากไดเร็กทอรีการติดตั้งเดิมเพื่อทำการอัปเดตอัตโนมัติ นอกจากนี้ดูเหมือนว่าคุณต้องพกพาโฟลเดอร์ที่แนบมาพร้อมกับ clickonce .exe สิ่งที่ฉันทำคือการรวมสิ่งที่ติดตั้ง Clickonce ไว้ในไฟล์เก็บถาวร SFX ด้วย winrar โดยเรียกใช้งานจากไดเรกทอรี temp เสมอและสร้าง "คลิกแม้แต่น้อยกว่าตัวติดตั้งหนึ่งครั้ง"
Traubenfuchs

คำตอบ:


131

ไมโครซอฟท์ได้ฟังเสียงร้องสำหรับการสนับสนุนการติดตั้ง (MSI) ใน Visual Studio และปล่อยVisual Studio Installer โครงการส่วนต่อขยาย ตอนนี้คุณสามารถสร้างโปรแกรมติดตั้งใน VS2013 ดาวน์โหลดส่วนขยายได้ที่นี่จาก visualstudiogallery

ภาพสตูดิโอตัวติดตั้งโครงการส่วนขยาย


1
ข้อมูลใหม่และยอดเยี่ยม Microsoft ควรปรับปรุงบทความที่เกี่ยวข้องKB2900817
satoc

@peer ไม่ใช่วิธีแก้ปัญหาใน VS 2012? ทางเลือก? ตัวอย่างซอร์สโค้ดแบบเต็มใน VS2012?
Kiquenet

@kiquenet nope, vs2012 ไม่ได้รับการสนับสนุน โครงการส่วนใหญ่ได้รับการอัปเกรดด้วยงานใด ๆ เป็น vs2013 และเข้ากันได้กับย้อนหลังกับปี 2555
Peter

4
อย่ากังวลกับการอ่านบทความ ... มันบอกให้คุณทำสิ่งต่อไปนี้เท่านั้น: ไปที่ Tools -> Extensions & Update เลือกแท็บออนไลน์ ค้นหา "Visual Studio Installer Projects Extension"
Prisoner ZERO

ฉันมีโซลูชัน VS 2010 มีโครงการติดตั้งอยู่ภายในเมื่อโซลูชันถูกสร้างขึ้นด้วย VS 2010 ไฟล์ msi จะถูกสร้างขึ้น ตอนนี้เรามี VS 2013 เท่านั้นและฉันไม่สามารถเปลี่ยน / โยกย้ายโครงการตั้งค่าได้ ฉันจะสร้างไฟล์ msi ได้อย่างไร
Jirong Hu

10

ตั้งแต่ Visual Studio 2012 Microsoft ไม่มีแพ็คเกจการปรับใช้ในตัวอีกต่อไป หากคุณต้องการใช้แพ็คเกจนี้คุณจะต้องใช้ VS2010

ในปี 2013 คุณมีทางเลือกมากมาย:

  • InstallShield
  • WiX
  • ม้วนของคุณเอง

ในโครงการของฉันฉันสร้างตัวติดตั้งของตัวเองตั้งแต่เริ่มต้นซึ่งเนื่องจากฉันไม่ได้ใช้ Windows Installer จึงมีข้อได้เปรียบในการทำงานที่รวดเร็วเป็นพิเศษแม้ในเครื่องเก่า


คุณ @ ming-slogar มีแอปพลิเคชันตัวอย่างที่มีตัวติดตั้งที่คุณต้องการแบ่งปันกับเราหรือไม่?
Highmastdon

@Highmastdon: โดยพื้นฐานแล้วฉันเพิ่งสร้าง bootstrapper ตัวติดตั้งด้วย C ++ ดั้งเดิม (กำหนดค่าเพื่อให้สามารถทำงานได้โดยไม่ต้องติดตั้ง C ++ runtime libs ล่วงหน้า) ซึ่งตรวจสอบการติดตั้ง. NET และเปิดตัวติดตั้ง WPF GUI โปรแกรมติดตั้ง WPF อนุญาตให้ผู้ใช้เลือกตัวเลือกมากมายจากนั้นคัดลอกไฟล์และเขียนรีจิสตรีคีย์ ฉันไม่มีแอปพลิเคชัน "ตัวอย่าง" - ฉันกำลังใช้ตัวติดตั้งในโปรเจ็กต์ที่ฉันกำลังดำเนินการอยู่ แต่ฉันสามารถลองดึงตัวอย่างได้หากคุณต้องการ
Ming Slogar

ฉันอยากเห็นตัวอย่างที่สมบูรณ์ของเรื่องนี้ ใจที่จะแบ่งปัน? ไม่ใช่ตัวโค้ด แต่เป็นแนวคิดและบางอย่างจากประสบการณ์ของคุณ? เช่นเดียวกับการฝังลงในโปรเจ็กต์ที่กำลังจะติดตั้งวิธีที่คุณทำให้สิ่งทั่วไปโดยอัตโนมัติ (การคัดลอกรายการไฟล์กฎ: เขียนทับ / ไม่เขียนทับ ฯลฯ ) นอกจากนี้ฉันใช้ NSIS atm แต่ฉันเบื่อภาษาสคริปต์UI ที่ทันสมัยน่าเกลียดและการออกแบบที่ช้ามาก (ยังอยู่ในยุคหิน xp)
Sinatr

@Sinatr ในการฝังแอสเซมบลีฉันได้ใช้ไฟล์ทรัพยากรอย่างหนักทั้งใน C ++ และ C # ในการคัดลอกไฟล์จริงๆแล้วฉันขี้เกียจและเขียนด้วยมือแต่ละการทำงานของไฟล์ (เช่นการใช้File.WriteAllBytesหรือFile.WriteAllTextขึ้นอยู่กับประเภทไฟล์) ฉันไม่ได้จัดการทับไฟล์ที่มีอยู่ - แอสเซมบลีทั้งหมดของฉันขึ้นต้นด้วยชื่อแอพของฉัน (เช่น AppName.Controls.dll, AppName.Images.dll) ดังนั้นโอกาสที่ไฟล์ซ้ำจะน้อยมาก หากคุณต้องการจัดการทุกสถานการณ์ที่เป็นไปได้คุณจะต้องทำในสิ่งที่ Windows Installer ทำซึ่งประเภทนี้จะเอาชนะวัตถุประสงค์ของการปรับแต่ง
Ming Slogar

7
@Kiquenet ฉันอัปโหลดโค้ดสำหรับโปรแกรมติดตั้งแบบกำหนดเองที่นี่: drive.google.com/… . มันจะไม่สร้างขึ้นเนื่องจากขาดการอ้างอิง (ฉันดึงมันมาจากโปรเจ็กต์สด) แต่อย่างน้อยคุณก็สามารถดูได้ว่าฉันสร้างตัวติดตั้งอย่างไร
Ming Slogar

3

Visual Studio 2013 รองรับโปรเจ็กต์การตั้งค่าแล้ว Microsoft ได้จัดส่งส่วนขยาย Visual Studio เพื่อสร้างโครงการติดตั้ง

Visual Studio Installer Projects Extension


สวัสดี @Hamid หลังจากเสร็จสิ้นการติดตั้งหน้าต่างจากการตั้งค่า MSI ไฟล์ดิบของฉัน (การออกแบบและการเข้ารหัส) จะแสดงที่ตำแหน่งการติดตั้งด้วย ฉันได้พัฒนาแอปพลิเคชันนี้โดยใช้ Visual Studio 2010 สร้างการตั้งค่าสำเร็จแล้ว แต่หลังจากติดตั้ง MSI ก็เกิดปัญหานี้ขึ้น โปรดช่วยฉันด้วย ขอบคุณล่วงหน้า.
dilipkumar1007

พยายามเข้าใจคำถามของคุณ คุณได้สร้างโครงการติดตั้งด้วย visual studio 2010 และใช้ไม่ได้กับ visual studio 2013?
Hamid Shahid

2

Microsoft ขอแนะนำให้ใช้"InstallShield Limited Edition for Visual Studio" แทน "Deployment and Setup Project" ที่เลิกใช้แล้ว - แต่ก็ไม่ค่อยดีนักและไม่มีใครแนะนำให้ใช้ แต่สำหรับการตั้งค่าที่เรียบง่ายและหากไม่มีปัญหาในการส่งต่อผลิตภัณฑ์ของบุคคลที่สามในเชิงพาณิชย์คุณสามารถใช้งานได้

อีกทางเลือกหนึ่งคือการใช้Windows Installer XML (WiX)แต่คุณต้องทำหลายอย่างด้วยตนเองซึ่งทำ Setup-Project ด้วยตัวเอง


ฉันเห็นด้วยอย่างยิ่งกับ @Kiquenet - คุณสามารถลองบทช่วยสอนได้จากwix.tramontana.co.hu
habakuk

ฉันติดตั้ง 2015LE ใน VS 2010 และฉันสามารถสร้างโปรเจ็กต์การตั้งค่า IS ใน VS 2010 ได้ตอนนี้ฉันจะเรียกโปรเจ็กต์นี้ในเจนกินส์ได้อย่างไร ปลั๊กอิน InstallShield สำหรับ Jenkins ถามเส้นทางไปยัง ISCmdBld.exe ซึ่งฉันไม่พบใน 2015LE
Jirong Hu


1

นอกเหนือจากการติดตั้งโล่และ WiX มีการติดตั้ง Inno แม้ว่าฉันจะไม่ได้ลองด้วยตัวเอง แต่ก็ได้ยินสิ่งดีๆเกี่ยวกับมัน


1

ฉันจะบอกว่าฉันแก้ปัญหาที่เกือบจะคล้ายกันได้อย่างไร ฉันพัฒนาแอปพลิเคชันโดยใช้ VS 2013 และพยายามสร้างวิซาร์ดเพราะไม่สามารถทำได้ ต่อมาฉันติดตั้ง Premium VS และลองแล้วล้มเหลว

ในที่สุดฉันใช้ "ClickOnce" และทำงานได้ดี

ดังนั้นฉันเชื่อว่าที่นี่ "CLICKONCE" จะช่วยคุณได้

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.