2009-03-31 32 views
64

Khi tôi nhấp chuột phải vào giải pháp của dự án C# Visual Studio và chọn Thêm ...> Lớp ... nó tạo ra một lớp mà không có công cụ sửa đổi công khai. Làm thế nào để tôi có được Visual Studio (2008) để mặc định lớp vào một lớp công khai?Làm thế nào để bạn mặc định một lớp mới thành công khai khi tạo nó trong Visual Studio?

+0

Bạn cần thay đổi mẫu lớp học, [như được mô tả ở đây] (http://web.archive.org/web/20090403082555/http://dotnet.org.za/hiltong/archive/2008/ 02/26/amending-the-new-class-visual-studio-c-template.aspx). Nó có liên quan nhiều hơn là chỉ chỉnh sửa một tệp duy nhất (đó là những gì bạn có thể mong đợi) nhưng nó không quá tệ. –

Trả lời

52

Bạn cần sửa đổi tệp nằm ở C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Code\1033.

Visual Studio 2010 (10,0) trở xuống: Có tệp zip trong đó có tên Class.zip. Giải nén tệp này, chỉnh sửa tệp để đặt trong từ khóa public của bạn rồi đóng gói lại (đảm bảo bạn sao lưu tệp gốc).

Sau này, đảm bảo VS phép tái xây dựng đó là bộ nhớ cache (mà chỉ là zipfiles giải nén vào thư mục trong C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplatesCache) bằng cách mở một Visual lệnh Studio vỏ và thực hiện lệnh sau:

devenv /installvstemplates 

Visual Studio 2012 (11.0) và lên: Xem the answer by @JochemKempe, vì việc thay đổi ngay bây giờ dễ dàng hơn nhiều, chỉ bằng cách chỉnh sửa một tệp duy nhất (không giải nén hoặc mở lại).

CẬP NHẬT: Đừng quên mở trình soạn thảo văn bản ưa thích của bạn với đặc quyền quản trị trước khi bạn thực hiện bất kỳ chỉnh sửa nào.

+0

Cảm ơn bạn. Trên máy tính Windows 7 64 bit với VS 2012, đường dẫn này nằm tại C: \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp – dotnetguy

+0

nếu bạn muốn thay đổi mẫu mục giữa một nhóm trên các máy khác nhau , bất kỳ ý tưởng? – DevDave

+0

Trong VS2013, bạn sẽ cần chạy Command Prompt Developer cho VS2013 với tư cách là Quản trị viên và chạy lệnh sau khi đóng Visual Studio - nó sẽ không hoàn thành khi VS đang mở. –

73

Trong VS2012 nó dễ dàng như đi C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class và chỉnh sửa tệp Class.cs.

Không cần phải giải nén hoặc xây dựng lại bộ nhớ cache. Một thay đổi rất tích cực nếu bạn hỏi tôi.

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 (Professional): C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\ItemTemplates\CSharp\Code\1033\Class

+1

Điều này dường như không hoạt động đối với tôi. Tôi thậm chí còn thay thế tệp Class.cs trong thư mục ItemTemplatesCache. Khởi động lại VS2012 mỗi lần. Có cách nào để xây dựng lại bộ nhớ đệm có thể? – crush

+0

Tôi không biết. Tôi xin lôi. – JochemKempe

+7

Để VS2013 sử dụng vị trí này: C: \ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 \ Class –

8

Để tạo một public class theo mặc định cho Visual Studio 2012:

Chỉnh sửa tệp này: C : \ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Mã \ 1033 \ Class \ Lớp.cs

Để trông như thế này:

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$ 
    { 
    } 
} 

Thông tin thêm: http://aaron-hoffman.blogspot.com/2013/05/edit-default-visual-studio-2012-item.html

1

Đây là một góc lõm PS scriptlet rằng sẽ cập nhật C# lớp cơ sở mục Template. Đường dẫn thay đổi tùy thuộc vào phiên bản/phiên bản Visual Studio bạn sử dụng. Nó cũng sao lưu mẫu gốc trong trường hợp bạn muốn hoàn nguyên trong tương lai.

$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 $_ 
} 
+0

Đường dẫn của tôi là '.. \ 2017 \ Professional \ ...' và tôi đã chỉnh sửa theo cách thủ công nhưng điều này cho thấy cấu trúc thư mục mới cho năm 2017. Cảm ơn. –

Các vấn đề liên quan