Tôi muốn một tác vụ msbuild để biên dịch các khung nhìn để tôi có thể xem liệu có lỗi thời gian biên dịch nào không ... biên dịch thời gian. Có ý kiến gì không?
Tôi muốn một tác vụ msbuild để biên dịch các khung nhìn để tôi có thể xem liệu có lỗi thời gian biên dịch nào không ... biên dịch thời gian. Có ý kiến gì không?
Câu trả lời:
Tôi thực sự muốn giới thiệu gói nuget RazorGenerator . Bằng cách đó, các chế độ xem của bạn có một .designer.cs
tệp được tạo khi bạn lưu chúng và ngoài việc nhận được các lỗi thời gian biên dịch cho các chế độ xem của bạn, chúng cũng được biên dịch trước trong hội đồng (= khởi động nhanh hơn) và Resharper cũng cung cấp thêm một số trợ giúp.
Để sử dụng điều này, bao gồm gói nuget RazorGenerator trong dự án ASP.NET MVC của bạn và cài đặt tiện ích mở rộng "Trình tạo dao cạo " trong mục bên dưới Công cụ → Tiện ích mở rộng và Cập nhật .
Chúng tôi sử dụng điều này và chi phí cho mỗi lần biên dịch với phương pháp này ít hơn nhiều. Trên hết, tôi có thể khuyên dùng .NET Demon của RedGate , điều này giúp giảm đáng kể thời gian biên dịch tác động.
Hi vọng điêu nay co ich.
Từ tài liệu từ readme cho RC1 (không được google lập chỉ mục)
Bước biên dịch ASP.NET
Hiện tại, các lỗi trong tệp xem không được phát hiện cho đến thời gian chạy. Để cho phép bạn phát hiện các lỗi này tại thời điểm biên dịch, các dự án ASP.NET MVC hiện bao gồm một thuộc tính MvcBuildViews, được tắt theo mặc định. Để kích hoạt thuộc tính này, hãy mở tệp dự án và đặt thuộc tính MvcBuildViews thành true, như trong ví dụ sau:
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<MvcBuildViews>true</MvcBuildViews>
</PropertyGroup>
Lưu ý Kích hoạt tính năng này thêm một số chi phí vào thời gian xây dựng.
Bạn có thể cập nhật các dự án đã được tạo bằng các bản phát hành MVC trước đó để bao gồm xác thực thời gian xây dựng bằng cách thực hiện các bước sau:
<PropertyGroup>
:
<MvcBuildViews>true</MvcBuildViews>
<Target Name="AfterBuild">
phần tử và sửa đổi nó để phù hợp với các mục sau:<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
<AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
Bạn có thể sử dụng aspnet_compiler cho việc này:
C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler -v /Virtual/Application/Path/Or/Path/In/IIS/Metabase -p C:\Path\To\Your\WebProject -f -errorstack C:\Where\To\Put\Compiled\Site
trong đó " / Virtual / Application / Path / Hoặc / Path / In / IIS / Metabase " giống như thế này: " / MyApp " hoặc " / lm / w3svc2 / 1 / root / "
Ngoài ra, còn có một tác vụ AspNetCompiler trên MSDN, cho thấy cách tích hợp aspnet_compiler với MSBuild:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="PrecompileWeb">
<AspNetCompiler
VirtualPath="/MyWebSite"
PhysicalPath="c:\inetpub\wwwroot\MyWebSite\"
TargetPath="c:\precompiledweb\MyWebSite\"
Force="true"
Debug="true"
/>
</Target>
</Project>
Ngoài ra, nếu bạn sử dụng Resharper, bạn có thể kích hoạt Solution Wide Phân tích và nó sẽ phát hiện bất kỳ lỗi biên dịch nào bạn có thể có trong các tệp aspx. Đó là những gì chúng tôi làm...
Câu trả lời được đưa ra ở đây hoạt động đối với một số phiên bản MVC nhưng không phải cho các phiên bản khác.
Giải pháp đơn giản đã làm việc cho MVC1 nhưng khi nâng cấp lên MVC2, các khung nhìn không còn bị phàn nàn nữa. Điều này là do một lỗi trong các tập tin dự án trang web. Xem bài viết này Haacked.
Xem điều này: http://haacked.com/archive/2011/05/09/compiling-mvc-view-in-a-build-en môi.aspx
Xây dựng> Chạy phân tích mã
Phím nóng: Alt+F11
Giúp tôi bắt lỗi Dao cạo.
Sử dụng tiện ích mở rộng Năng suất ( miễn phí ) của Visual Studio giúp một chút . Cụ thể, Solution Error Visualizer
tính năng. Với nó, các lỗi biên dịch được đánh dấu trực quan trong trình khám phá giải pháp (trong tệp nguồn nơi tìm thấy lỗi). Tuy nhiên, vì một số lý do, tính năng này không hoạt động như với các lỗi khác ở bất kỳ nơi nào khác trong mã.
Với các khung nhìn MVC, mọi lỗi thời gian biên dịch sẽ vẫn được gạch chân màu đỏ trong các tệp .cs tương ứng của chúng, nhưng báo hiệu các lỗi này không được truyền lên trong Solution Explorer (không có cách nào, thậm chí không có trong tệp nguồn chứa).
Cảm ơn đã BlueClouds
sửa chữa tuyên bố trước đây của tôi.
Tôi vừa báo cáo đây là một vấn đề trong dự án github của tiện ích mở rộng.