2015-05-15 19 views
14

Trong một trong các dự án của tôi, tôi đang sử dụng một thư viện tuyệt vời có tên là Humanizer. Thư viện này có nhiều biến thể ngôn ngữ (tôi đếm là 38).Bỏ qua các phiên bản bản địa hóa của cụm từ đầu ra xây dựng

Khi tôi xây dựng dự án, sau đó tôi thấy tất cả các thư mục như "af", "ar", "bg", "bn-BD", ..., "zh-Hant" với các hội đồng có chứa tài nguyên được bản địa hóa cho thư viện này.

Vấn đề của tôi là dự án của tôi chỉ có tiếng Anh và tôi không quan tâm đến việc có tất cả các hội đồng địa phương đó trong kết quả xây dựng của mình. Có cách nào tốt để bỏ qua chúng từ bản dựng không?

Tôi đang tìm các giải pháp chung cho vấn đề này. Điều này xảy ra với các thư viện khác với Humanizer, như DevExpress Controls, vv không phải là nguồn mở.

Trả lời

20

Những gì bạn có thể làm là thêm một mục tiêu (ở đây, tôi đặt tên nó là 'RemoveSatelliteAssemblies') để hồ sơ dự án msbuild csproj, ví dụ, ở cuối:

<Project...> 
    .... 
    <Target Name="RemoveSatelliteAssemblies" AfterTargets="ResolveAssemblyReferences"> 
    <ItemGroup> 
     <ReferenceCopyLocalPaths Remove="@(ReferenceSatellitePaths)" /> 
    </ItemGroup> 
    </Target> 
</Project> 

mục tiêu này sẽ chạy sau khi tiêu chuẩn ResolveAssemblyReferences mục tiêu (được định nghĩa ở đâu đó trong tệp Microsoft.Common[something].targets trong thư mục C:\Program Files (x86)\MSBuild hoặc trong thư mục C:\Windows\Microsoft.Net - nó phụ thuộc vào thiết lập và phiên bản Visual Studio/MsBuild của bạn) và nó sẽ xóa tất cả các đường dẫn vệ tinh tham chiếu khỏi danh sách đường dẫn được tham chiếu được đánh dấu là bản sao local (cả hai tên ItemGroup cũng được khai báo trong tệp .targets chuẩn).

+1

Cảm ơn bạn. Hoạt động hoàn hảo. –

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