6

Khi tôi xuất bản Ứng dụng Web ASP.NET trong Visual Studio 2012/2013/2015, Visual Studio cũng sẽ xuất bản các gói .config (từ NuGet) và bất kỳ * .edmx.diagram tệp nào (từ Entity Framework) , theo mặc định.Tôi có thể ngừng Visual Studio 2012+ từ bao giờ xuất bản các gói .config và các tệp sơ đồ EF?

Tôi biết rằng tôi có thể đi vào dự án và cá nhân chuyển đổi các thuộc tính cho những tập tin này từ xây dựng nội dung hành động để Build Action Không, tuy nhiên, tôi phải làm điều này cho từng dự án mà tôi sử dụng Entity Framework, hoặc bất kỳ gói NuGet nào khác được cung cấp.

Tôi có thể configure the publishing process để loại trừ tệp trên cơ sở từng dự án, nhưng có thể nói cho Visual Studio 2012/2013/2015 toàn cầu để loại trừ các tệp này, trên tất cả các dự án không?

+0

Bản sao có thể có của [Loại trừ tệp khỏi xuất bản trang web trong Visual Studio] (http://stackoverflow.com/questions/650875/exclude-files-from-web-site-publish-in-visual-studio) – dthrasher

+0

Cảm ơn cho di chuyển. Làm rõ rằng tôi đang tìm kiếm một cái gì đó toàn cầu, vì làm nó trên cơ sở từng dự án là một việc vặt, đặc biệt là vì EF là một sự bao gồm khá chuẩn. –

Trả lời

4

Bạn có thể loại trừ tệp theo phần mở rộng hoặc tên tệp sửa đổi thuộc tính trong tệp web.config. Xem tài liệu cho số buildproviders element in web.config. Bạn có thể thêm phần mở rộng và bản đồ nó vào System.Web.Compilation.ForceCopyBuildProvider, hoặc thêm tên tập tin và sử dụng System.Web.Compilation.IgnoreFileBuildProvider

Phần buildproviders có cấu trúc sau:

<buildProviders> 
    <add /> 
    <clear/> 
    <remove /> 
</buildProviders> 

Bạn cũng có thể loại trừ các tệp hoặc thư mục bằng cách sửa đổi tệp dự án của bạn. Trong phần tử PropertyGroup, bạn có thể thêm các phần tử ExcludeFilesFromDeployment và ExcludeFoldersFromDeployment để loại trừ các mục mong muốn.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    <ExcludeFilesFromDeployment>File1.aspx;File2.aspx</ExcludeFilesFromDeployment> 
    <ExcludeFoldersFromDeployment>Folder1;Folder2</ExcludeFoldersFromDeployment> 
</PropertyGroup> 

Xem câu trả lời cho câu hỏi này để biết thêm chi tiết: Exclude files from web site publish in Visual Studio

UPDATE: Trong câu trả lời cho các yêu cầu sửa đổi mà bạn có thể làm điều này trên toàn cầu, trên tất cả các dự án và các giải pháp, tôi muốn đề nghị bạn tạo một tệp build target mà bạn có thể nhập vào tệp dự án của mình. Trong tệp đích, bạn có thể xác định loại trừ tệp và cặp mà bạn muốn thực hiện.

Để dễ dàng phân phối mục tiêu xây dựng này cho tất cả các giải pháp của bạn, bạn có thể tạo gói NuGet chứa tệp đích và sửa đổi tệp .csproj của bạn cho phù hợp.

Đây thực chất là cách tiếp cận được sử dụng bởi SlowCheetah để mở rộng quy trình chuyển đổi web.config sang các tệp .config khác; gói NuGet cung cấp tệp .targets tùy chỉnh mở rộng quy trình xây dựng.

Thiết lập ban đầu là một nỗ lực, nhưng nếu bạn đang hỗ trợ rất nhiều giải pháp hoặc nhóm, đó có thể là cách tiếp cận tốt nhất.

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