Sử dụng TextTransform để tự động tạo mã với T4 mà không cần khởi chạy Visual Studio
Môi trường hoạt động
- Visual Studio
-
- Visual Studio 2022
- Windows
-
- cửa sổ 11
Điều kiện tiên quyết
- Visual Studio
-
- Nó hoạt động ngay cả với phiên bản cũ hơn một chút
Điều kiện tiên quyết
Mẹo này giả định như sau:
- Visual Studio được cài đặt trên Windows
Trong trường hợp này, chúng tôi sẽ sử dụng một công cụ có tên là "TextTransform (hoặc TextTransformCore)", nhưng vì nó là một công cụ có trong Visual Studio, nên cần phải cài đặt nó ngay cả khi bạn không khởi động Visual Studio.
Sự khác biệt giữa "TextTransform.exe" và "TextTransformCore.exe" là gì?
"TextTransform.exe" là một công cụ ban đầu đã xuất hiện kể từ khi Entity Framework ra đời.
TextTransformCore.exe là một công cụ mới được xây dựng trên .NET 6.
Không có sự khác biệt lớn về chức năng, vì vậy không quan trọng bạn sử dụng cái nào.
Tạo tệp T4 (.tt)
Nó không khác với những gì bạn tạo trong Visual Studio, vì vậy hãy sử dụng trình soạn thảo văn bản để tạo nó. Lần này, chúng ta sẽ sử dụng code mà chúng ta đã tạo trước đó làm Mr./Ms..
<#@ template debug="false" hostspecific="false" language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ output extension=".cs" #>
<#
List<string> types = new(){"Int", "Short", "Long", "Float", "Double", "Decimal"};
#>
public static class ParseExtensions
{
<# foreach (var type in types) { #>
<# var typeLower = type.ToLower(); #>
public static <#= typeLower #> Parse<#= type #>(this string self, <#= typeLower #> defaultValue)
{
return <#= typeLower #>.TryParse(self, out var val) ? val : defaultValue;
}
<# } #>
}
Trong trường hợp này, chúng tôi sẽ đặt tệp này ở vị trí sau. Bạn có thể chạy nó ở bất cứ đâu, vì vậy hãy để nó ở bất cứ đâu bạn muốn.
- C:\Tạm thời\Sample.tt
Tạo mã bằng công cụ dòng lệnh "TextTransform"
Trong Visual Studio, thật dễ dàng vì Visual Studio tự động tạo mã bằng cách sử dụng "TextTransform", nhưng nếu bạn không sử dụng Visual Studio, bạn phải tạo mã theo cách thủ công bằng cách sử dụng "TextTransform".
TextTransform là một công cụ dòng lệnh được cài đặt khi bạn cài đặt Visual Studio trong thư mục sau:
- < drivePath>\Program Files\Microsoft Visual Studio\<Visual Studio Version>\<Editions>\Common7\IDE\TextTransform.exe
- < đường dẫn ổ đĩa>\Program Files\Microsoft Visual Studio\<Visual Studio Phiên bản>\<Editions>\Common7\IDE\TextTransformCore.exe
[Ví dụ]
- C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform.exe
Khởi chạy thiết bị đầu cuối hoặc dấu nhắc lệnh và sử dụng TextTransform để tạo mã.
Đối với Windows 11, khởi chạy Terminal từ menu Bắt đầu. Đối với các hệ điều hành khác, sử dụng dấu nhắc lệnh.
Đối với thiết bị đầu cuối, chuyển sang dấu nhắc lệnh. Không có gì bạn không thể làm với PowerShell, nhưng mô tả thay đổi một chút.
cd
Trong lệnh, điều hướng đến thư mục nơi bạn đã đặt tệp .tt và nhập lệnh như sau: (Vui lòng thay đổi phiên bản của đường dẫn thư mục cho phù hợp.)
[Ví dụ nhập liệu]
- "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\TextTransform" Sample.tt
Nếu thành công, quá trình tiến hành như thể nó được thực hiện mà không có sự cố. Nếu bạn thực sự nhìn vào thư mục, bạn có thể thấy rằng mã được tạo tự động.
Các nội dung cũng được tạo ra đúng cách.
Tôi muốn rút ngắn đường dẫn của TextTransform khi thực hiện một lệnh.
Nếu bạn không muốn viết một đường dẫn dài đến TextTransform mỗi khi bạn chạy lệnh, bạn có thể đăng ký đường dẫn đó trong một "biến môi trường". Nếu đó là dấu nhắc lệnh phát triển đi kèm với Visual Studio, nó sẽ tham chiếu đường dẫn đó theo mặc định, giúp viết dễ dàng hơn.
Nếu bạn nhìn vào thư mục Visual Studio từ menu Start, bạn sẽ tìm thấy dấu nhắc lệnh phát triển và khởi chạy nó.
Theo cách tương tự, khi viết lệnh, bạn có thể bỏ qua đường dẫn của TextTransform và thực thi nó.
Nhân tiện, trong trường hợp của Windows 11, thật dễ dàng để mở nó vì nó được tích hợp sẵn trong thiết bị đầu cuối.
Đặt lệnh trong tệp .bat hoặc .ps1 để dễ chạy
Nội dung được mô tả giống như khi nhập lệnh bình thường, vì vậy nội dung bị bỏ qua. Tùy thuộc vào cài đặt hệ điều hành, nó có thể bị hạn chế để không thể thực thi ngay cả khi bạn nhấp đúp vào tệp .bat hoặc .ps1, vì vậy trong trường hợp đó, vui lòng đặt nó để có thể thực thi.