Visual Studio Express - ประเภทย่อยของโครงการที่ขาดหายไปป้องกันการเปิดโครงการ

กำลังพยายามสร้างโครงการ WCF โดยทำตามคำแนะนำที่นี่ ... http://msdn.microsoft.com/en-us/library/bb386386.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-3 แต่ติดอยู่ที่ขั้นตอนแรก

แย่ - VSE Windows Desktop ไม่มีเทมเพลตไลบรารีบริการ WCF

ดี - VSE Web Developer ทำได้ ดังนั้นฉันจึงตั้งค่าโปรเจ็กต์ WCF ใน VSE Web Developer

แย่ - ไม่สามารถเปิดโครงการ WCF ใน VSE Windows Desktop

ดี - ค้นหาว่าคุณสามารถคัดลอกเทมเพลตจากโฟลเดอร์ VSE Web Developer ไปยัง VSE Windows Desktop ได้ และฉันก็ทำได้

ดี - ขณะนี้ VSE Windows Desktop มีเทมเพลตไลบรารีบริการ WCF ดังนั้นฉันจึงพยายามสร้างโครงการ WCF ใหม่ ดูเหมือนว่า VSE จะปฏิบัติตาม ตั้งค่าโฟลเดอร์โครงการ ... แต่แล้ว

แย่ - ... ส่งข้อผิดพลาด ...

The project file '... WcfService1.csproj' cannot be opened.

There is a missing subtype.

Subtype:'{blah blah}' us unsupported by this installation.

ฉันยังลองปิดแล้วเปิดใหม่อีกครั้ง

อะไรต่อไป?


person Extermiknit    schedule 30.10.2014    source แหล่งที่มา
comment
WCF Service Library ไม่มีอะไรมากไปกว่าคลาสไลบรารี (DLL) เทมเพลตโปรเจ็กต์อาจทำให้การเริ่มต้นใช้งานง่ายขึ้น แต่แทนที่จะดำเนินการผ่านขั้นตอนทั้งหมดที่คุณทำ เพียงแค่สร้างโปรเจ็กต์ไลบรารีคลาสใน VSE Windows Desktop   -  person Tim    schedule 31.10.2014
comment
@Tim - ฉันทำไม่ได้ VSE Windows Desktop ไม่มีเทมเพลตไลบรารีบริการ WCF ดังนั้นฉันจึงไม่สามารถสร้างโครงการ WCF ได้ คุณหมายถึงอย่างอื่นหรือเปล่า?   -  person Extermiknit    schedule 31.10.2014
comment
คุณอาจต้องการดูคำถามที่เกี่ยวข้อง (ซ้ำกัน?) สำหรับอุปสรรคบางประการที่คุณเผชิญ stackoverflow.com/questions/14698258/   -  person DeanOC    schedule 31.10.2014


คำตอบ (2)


ตามที่ฉันได้กล่าวไว้ในความคิดเห็นของฉัน WCF Service Library เป็นเพียงไลบรารีคลาส - เทมเพลตโครงการ WCF Service Library มีสิ่งเพิ่มเติมเพื่อให้ตั้งค่าโครงการได้เร็วขึ้น คุณสามารถทำสิ่งเดียวกันได้โดยการสร้างไลบรารีของชั้นเรียน

ไปที่ไฟล์ -> โครงการใหม่บนเมนู ในหน้าต่างที่เปิดขึ้น ให้ขยาย Visual C# จากนั้นเลือก Windows และเลือก Class Library จากรายการตรงกลาง ตั้งชื่อแล้วคลิกตกลง

ป้อนคำอธิบายรูปภาพที่นี่

คุณจะต้องเพิ่มอินเทอร์เฟซและการตั้งค่าสำหรับบริการ แต่คุณควรจะสามารถคัดลอกและวางจากบทความที่คุณกำลังติดตามได้ เมื่อเสร็จแล้ว คุณจะมี WCF Service Library

แก้ไขเพื่อดูรายละเอียดเพิ่มเติม

สิ่งเดียวที่เทมเพลต WCF Service Library มอบให้คุณคือต้นแบบสำหรับ WCF Service Library ซึ่งรวมถึงไฟล์ .cs สำหรับการใช้บริการ ไฟล์ .cs สำหรับสัญญาบริการ (อินเทอร์เฟซ) ที่บริการนำไปใช้และ app.config ไฟล์ที่มีรายการ <system.serviceModel> ที่จำเป็น

ยึดตามบทความที่คุณลิงก์ไปในโพสต์ต้นฉบับ ต่อไปนี้คือวิธีดำเนินการโดยไม่ต้องใช้เทมเพลต

ขั้นตอนที่ 1 และ 2 ทำตามสิ่งที่ฉันมีด้านบน - สร้างไลบรารีของชั้นเรียน VS จะสร้างโปรเจ็กต์และคุณจะเห็นไฟล์ชื่อ class1.cs นี่จะเป็นชั้นบริการของคุณ เปลี่ยนชื่อเป็น WCFServiceLibrary1.cs หากคุณต้องการ

ถัดไปเพิ่มอินเทอร์เฟซและตั้งชื่อเป็น IWCFServiceLibrary1 นี่จะเป็นสัญญาการบริการของคุณ คุณจะต้องอัปเดตไฟล์ WCFServiceLibrary1.cs และเพิ่ม : IWCFServiceLibrary1 หลัง public class WCFServiceLibrary1 เพื่อให้มีลักษณะดังนี้:

public class WCFServiceLibrary1 : IWCFServiceLibrary1

ในอินเทอร์เฟซ ให้เพิ่มแอตทริบิวต์ [ServiceContract] ไว้เหนืออินเทอร์เฟซ เช่นนี้

[ServiceContract]
public interface IWCFServiceLibrary1

คุณจะต้องเพิ่มการอ้างอิงถึง System.ServiceModel และ using System.ServiceModel ให้กับคลาสและอินเทอร์เฟซของคุณ

ขั้นตอนที่ 3 และ 4 คัดลอกโค้ดในบทความไปยังไฟล์ที่เหมาะสม

ขั้นตอนที่ 5: คุณสามารถทดสอบบริการได้โดยการกดปุ่ม F5 และเรียกใช้ WCFTestClient

จากนั้นคุณควรจะสามารถติดตามส่วนที่เหลือของบทความได้

วิธีนี้ใช้เวลานานกว่าเล็กน้อย แต่คุณจะได้รับความเข้าใจที่ดีขึ้นว่า WCF Service Library คืออะไร

person Tim    schedule 31.10.2014
comment
พยายามอย่างนั้น ตั้งค่า Class Library ใหม่ใน VSE สำหรับ Windows Desktop และเริ่มคัดลอกรายการจาก VSE for Web (ดูเทอะทะ แต่พยายามค้นหาปัญหา) แต่ไม่สามารถสร้างรายการ Web Service .asmx ได้ ในความเป็นจริง VSE สำหรับ Windows Desktop ไม่มีรายการใดภายใต้โหนดเว็บสำหรับสร้างรายการใหม่ ฉันจะนำสิ่งของเหล่านั้นเข้าไปในนั้นได้อย่างไร? ป.ล. ฉันดูในบทความที่เชื่อมโยงซึ่งพูดถึงการแก้ไขไฟล์ XML แต่อยู่ที่ไหน - person Extermiknit; 31.10.2014
comment
ตกลง. ขั้นแรก ให้หยุดพยายามคัดลอกสิ่งต่างๆ จาก VSE for Web Desktop มีทุกสิ่งที่คุณต้องการในการสร้าง WCF Service Library แต่ไม่ได้บรรจุอยู่ในเทมเพลตที่เรียบร้อย ASMX != WCF - ASMX เป็นเทคโนโลยีรุ่นเก่า และไม่ควรใช้สำหรับการพัฒนาใหม่ ให้เวลาฉันสักครู่แล้วฉันจะอัปเดตคำตอบของฉัน - person Tim; 31.10.2014
comment
ขอบคุณสำหรับความอดทนของคุณ. ฉันทำตามขั้นตอนของคุณแล้ว แต่ติดอยู่ที่ขั้นตอนที่ 5 F5 (บนไลบรารีของคลาส) ให้ข้อความแสดงข้อผิดพลาดต่อไปนี้ ไม่สามารถเริ่มโปรเจ็กต์ที่มีประเภทเอาต์พุตของไลบรารีคลาสได้โดยตรง ในการดีบักโปรเจ็กต์นี้ ให้เพิ่มโปรเจ็กต์ที่ปฏิบัติการได้ให้กับโซลูชันนี้ซึ่งอ้างอิงถึงโปรเจ็กต์ไลบรารี ตั้งค่าโครงการปฏิบัติการเป็นโครงการเริ่มต้น ฉันเดาว่าฉันต้องการขั้นตอนต่อไปในคำแนะนำแบบ MSDN เพื่อขับเคลื่อนไลบรารีของชั้นเรียน - person Extermiknit; 01.11.2014
comment
ไม่ไป - ขั้นตอนถัดไปในคำแนะนำนี้จำเป็นต้องเพิ่มการอ้างอิงบริการ แต่ไม่มีสิ่งใดปรากฏบน Discover แม้ว่าฉันจะเพิ่มโครงการ WcfService1 ลงในโซลูชันก็ตาม สำหรับฉันดูเหมือนว่าฉันมีไฟล์ แต่ไม่มีกลไกที่จะบอกว่าใช้ไฟล์เหล่านี้เพื่อตั้งค่าบริการ นอกจากนี้ VSE สำหรับ Windows Desktop ไม่มีตัวเลือกสำหรับเว็บเช่น VSE สำหรับเว็บ (ไม่น่าแปลกใจ) ดังนั้นจึงไม่มีกลไกในการเลือกเซิร์ฟเวอร์ (เช่น IIS Express) หรือตั้งค่าโลคัลโฮสต์ ฉันต้องเขียนโค้ดบางอย่างใน VSE สำหรับเดสก์ท็อป Windows ด้วยตนเองเพื่อสร้างเซิร์ฟเวอร์จำลอง/localhost หรือไม่ - person Extermiknit; 01.11.2014

การจัดการความคาดหวัง - ฉันถูกคาดหวังให้ทำตามขั้นตอนทั้งหมดในการดำเนินการนี้ แต่อาจไม่จำเป็น (ซึ่งบอกเป็นนัยในคำตอบที่ให้ไว้) ดังนั้นฉันจึงลองตั้งค่าแบบเปลือยเปล่าตามที่อธิบายไว้ที่นี่ ...

เป็นไปได้หรือไม่ เริ่มสำรวจ WCF โดยใช้ Visual Studio Express สำหรับ Windows Desktop 2013 ได้ไหม

person Extermiknit    schedule 12.11.2014