เมื่อฉันคลิกขวาในโซลูชันของโปรเจ็กต์ C # Visual Studio แล้วเลือกเพิ่ม ... > คลาส ... มันจะสร้างคลาสโดยไม่มีตัวปรับแต่งสาธารณะ ฉันจะทำให้ Visual Studio (2008) เริ่มต้นคลาสเป็นคลาสสาธารณะได้อย่างไร
เมื่อฉันคลิกขวาในโซลูชันของโปรเจ็กต์ C # Visual Studio แล้วเลือกเพิ่ม ... > คลาส ... มันจะสร้างคลาสโดยไม่มีตัวปรับแต่งสาธารณะ ฉันจะทำให้ Visual Studio (2008) เริ่มต้นคลาสเป็นคลาสสาธารณะได้อย่างไร
คำตอบ:
คุณต้องแก้ไขไฟล์ที่อยู่ในC:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033
.
Visual Studio 2010 (10.0) และต่ำกว่า:มีไฟล์ zip อยู่ในนั้นชื่อ Class.zip แกะสิ่งนี้แก้ไขไฟล์เพื่อใส่public
คีย์เวิร์ดของคุณจากนั้นทำการแพ็คใหม่ (ตรวจสอบให้แน่ใจว่าคุณได้สำรองข้อมูลต้นฉบับไว้)
หลังจากนี้ตรวจสอบให้แน่ใจว่า VS สร้างแคชใหม่ (ซึ่งเป็นเพียงไฟล์ zip ที่แตกไฟล์ลงในไดเร็กทอรีC:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache
) โดยเปิดเชลล์คำสั่ง Visual Studio และดำเนินการคำสั่งต่อไปนี้:
devenv /installvstemplates
Visual Studio 2012 (11.0) ขึ้นไป: ดูคำตอบโดย @JochemKempeเนื่องจากตอนนี้การเปลี่ยนแปลงทำได้ง่ายกว่ามากเพียงแค่แก้ไขไฟล์เดียว (ไม่มีการคลายซิปหรือการซิปซ้ำ)
อัปเดต:อย่าลืมเปิดโปรแกรมแก้ไขข้อความที่คุณต้องการด้วยสิทธิ์ของผู้ดูแลระบบก่อนที่คุณจะทำการแก้ไขใด ๆ
ในVS2012นั้นง่ายพอ ๆ กับการไปC:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
และแก้ไขไฟล์ Class.cs
ไม่จำเป็นต้องเปิดเครื่องรูดหรือสร้างแคชใหม่ การเปลี่ยนแปลงในเชิงบวกมากถ้าคุณถามฉัน
VS2015 :C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
VS2017 (RC) :C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
VS2017 (มืออาชีพ) :C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class
VS2019 (องค์กร) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
VS2019 (มืออาชีพ) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
เก่า
VS2019 (ดูตัวอย่าง) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
ในการสร้างคลาสสาธารณะโดยค่าเริ่มต้นสำหรับ Visual Studio 2012:
แก้ไขไฟล์นี้:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs
มีลักษณะดังนี้:
using System;
using System.Collections.Generic;
$if$ ($targetframeworkversion$ >= 3.5)using System.Linq;
$endif$using System.Text;
$if$ ($targetframeworkversion$ >= 4.5)using System.Threading.Tasks;
$endif$
namespace $rootnamespace$
{
public class $safeitemrootname$
{
}
}
คุณสามารถสร้างเทมเพลตโครงการของคุณเองหรือแก้ไขเทมเพลตที่มีอยู่ก็ได้ ไฟล์โปรเจ็กต์ทั้งหมดเหล่านี้ขับเคลื่อนด้วยเทมเพลตดังนั้นคุณสามารถแก้ไขและ / หรือเพิ่มไฟล์ของคุณเองได้
ตรวจสอบลิงค์เหล่านี้:
มาร์ค
นี่คืออีกครั้งเข้าคริปต PS ที่จะอัปเดต C # ชั้นฐานแม่แบบรายการ เส้นทางจะเปลี่ยนไปขึ้นอยู่กับเวอร์ชัน / รุ่นของ Visual Studio ที่คุณใช้ นอกจากนี้ยังสำรองแม่แบบเดิมในกรณีที่คุณต้องการเปลี่ยนกลับในอนาคต
$csharpClassTemplates = @("C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs",
"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\1033\Class\Class.cs",
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class\Class.cs")
$csharpClassTemplates | % {
Write-Output("Updating template $_")
Copy-Item $_ -Destination "$_.backup"
(get-content $_).Replace('public ', '').Replace('class ', 'public class ') | Set-Content $_
}
..\2017\Professional\...
และฉันแก้ไขด้วยตนเอง แต่สิ่งนี้แสดงให้เห็นโครงสร้างโฟลเดอร์ใหม่สำหรับปี 2017 ขอบคุณ
นอกจากคำตอบที่ยอดเยี่ยมของ JochemKempe แล้วนี่คือวิธีการทำสำหรับเทมเพลตหลักของ. NET
แทนที่จะแก้ไขแม่แบบภายในไดเรกทอรีคุณจำเป็นต้องแก้ไขคนที่อยู่ภายใน\CSharp\
\AspNetCore\
VS2019 (องค์กร) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs
VS2019 (มืออาชีพ) :C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\ItemTemplates\AspNetCore\Code\1033\Class\Class.cs
คำตอบจาก JochemKempe ใช้งานได้ดี แต่ค่อนข้างยากเนื่องจากคุณต้องเขียนไฟล์ที่มีการป้องกันใหม่ในรูปแบบProgram Files
.
เพื่ออัปเดตคำตอบเท่านั้น เทมเพลตสำหรับรุ่น Community อยู่ในโฟลเดอร์:
c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates
แต่มีความเป็นไปได้อื่นในการสร้างเทมเพลตใหม่ คัดลอกไฟล์จากโฟลเดอร์ต้นทางไปยังโฟลเดอร์เทมเพลตผู้ใช้
เช่นสำหรับแอปพลิเคชัน Windows Form อาจเป็นหนึ่งในโฟลเดอร์ซอร์สเหล่านี้(สำหรับ Visual Studio 2017 Community) :
c:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplates\CSharp\Windows Root\Windows\1033\WindowsApplication\
c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\ProjectTemplatesCache\CSharp\Windows Root\Windows\1033\WindowsApplication\
โฟลเดอร์เทมเพลตผู้ใช้เริ่มต้นคือ(สำหรับ Visual Studio 2017 Community) :
C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\
และโฟลเดอร์ปลายทางสำหรับเทมเพลต Windows Form Application ใหม่จะเป็น:
C:\Users\<username>\Documents\Visual Studio 2017\Templates\ProjectTemplates\Visual C#\Windows\1033\MyWindowsApplication\
ด้วยวิธีนี้คุณจะมี "Windows Form Application" สองรายการเมื่อสร้างโครงการใหม่ ความแตกต่างระหว่างสองสิ่งนี้อยู่ในชื่อไฟล์เริ่มต้นเท่านั้น เพื่อสร้างความแตกต่างที่ดีขึ้นคุณสามารถเปลี่ยนชื่อที่แสดงของเทมเพลตได้ หากต้องการเปลี่ยนชื่อเทมเพลตให้อัปเดต.vstemplate
ไฟล์
ต้นฉบับcsWindowsApplication.vstemplate
ประกอบด้วยบรรทัด:
<Name Package="{FAE04EC1-301F-11d3-BF4B-00C04F79EFBC}" ID="2318" />
ในการเปลี่ยนชื่อคุณต้องเปลี่ยนบรรทัดเป็นดังนี้:
<Name ID="2318">My Windows Form Application</Name>
ส่วนเชิงลบของวิธีนี้คือการที่คุณต้องเปลี่ยนชื่อใหม่ของคุณแม่และคุณเพิ่มแม่แบบใหม่แม่แบบที่มีอยู่(เก่าตัวอย่างเช่น 'ถูกต้อง' จะยังคงอยู่และคุณยังสามารถใช้มันไม่เต็มใจ)
แต่ก็มีส่วนดีเช่นกัน คุณไม่จำเป็นต้องเป็นผู้ดูแลระบบเพื่อเพิ่มหรืออัปเดตตัวอย่าง (ไม่จำเป็นต้องเขียนไฟล์ในProgram Files
โฟลเดอร์ใหม่)