19

My Visual Studio Ultimate 2013 Update 4 không biên dịch ASP.NET MVC 5 lượt xem.VS2013 không biên dịch ASP.NET MVC5 lượt xem

Lỗi biên dịch được phát hiện trên các chế độ xem không thường xuyên, mặc dù việc biên dịch luôn thành công. Intellisense cũng bật và tắt trên các khung nhìn. Tôi sẽ nói rằng nó đã làm việc tốt hơn đáng kể trong VS2012 (tôi không có nhiều MVC trên phiên bản đó).

Tôi đã cố thêm <MvcBuildViews>true</MvcBuildViews> vào tệp .csproj, thứ sử dụng để hoạt động trong VS2010, nhưng nó không hoạt động nữa.

Bất kỳ ý tưởng nào có thể là vấn đề?

CẬP NHẬT: Tôi đang tìm cách xem lỗi trên chế độ xem, vì nó đã xảy ra trong các phiên bản trước của VS.

+0

Bạn có sử dụng Resharper không? – Ofiris

+0

Không, tôi không sử dụng. – vtortola

+1

RazorGenerator tốt hơn nhiều để biên dịch các khung nhìn. Tôi muốn xem xét chuyển sang nó: https://visualstudiogallery.msdn.microsoft.com/1f6ec6ff-e89b-4c47-8e79-d2d68df894ec và NUGET: https://www.nuget.org/packages/RazorGenerator.Mvc/ – mattytommo

Trả lời

14

Dự án của bạn có bao gồm mục tiêu và móc vào sau khi tạo sự kiện không? Hãy thử msbuild WebApplication1.csproj /t:MvcBuildViews từ dòng lệnh, nó sẽ kiểm tra xem bạn có cả thuộc tính mặc định và đích được xác định hay không.

<PropertyGroup> 
    <MvcBuildViews>true</MvcBuildViews> 
</PropertyGroup> 

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 
</Target> 

Hãy thử tạo dự án MVC trống từ trong VS2013U4 và so sánh csproj với máy của bạn.

+0

MvcBuildViews được đặt thành false trong ứng dụng VS2013 MVC5. Cảm ơn bạn về thông tin. Chuyển sang và bây giờ tôi có thể nhìn thấy nơi để xem xét - cấp nó là các tập tin MVC tạo ra nhưng tên cho biết xem dao cạo. Là một cơn ác mộng phải đi qua tất cả các quan điểm sau khi đổi tên không gian tên. – Andez

30

Nhấp chuột phải vào dự án web của bạn trong Solution Explorer. Nhấp vào Unload Project. Nhấp chuột phải vào dự án và nhấp vào Edit <projname>.csproj.

Đảm bảo bạn có phần tử này (thêm nó nếu nó không tồn tại).

<Project> 
    <PropertyGroup> 
    <MvcBuildViews>true</MvcBuildViews> 
    </PropertyGroup> 
</Project> 

Cuộn xuống dưới cùng. Bạn sẽ thấy một số nhận xét "Để sửa đổi quy trình xây dựng của bạn, hãy thêm công việc của bạn bên trong một trong các mục tiêu bên dưới và bỏ ghi chú đó". Dưới đó, thêm dấu sau:

<Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> 
    <ItemGroup> 
     <ExtraWebConfigs Include="$(BaseIntermediateOutputPath)\**\web.config" /> 
     <ExtraPackageTmp Include="$([System.IO.Directory]::GetDirectories(&quot;$(BaseIntermediateOutputPath)&quot;, &quot;PackageTmp&quot;, System.IO.SearchOption.AllDirectories))" /> 
    </ItemGroup> 
    <Delete Files="@(ExtraWebConfigs)" /> 
    <RemoveDir Directories="@(ExtraPackageTmp)" /> 
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" /> 
    </Target> 

(mã trên nên có một phụ huynh của các gốc <Project> nút trong trường hợp bạn không nhìn thấy những nhận xét tôi đã đề cập)

Đóng tệp .csproj, sau đó phải nhấp vào dự án của bạn trong Solution Explorer và nhấp vào Reload Project.

Thao tác này sẽ thêm lượt xem của bạn vào bước biên dịch và sẽ dừng bản dựng của bạn nếu tìm thấy lỗi. Tôi thấy điều này là một điều tốt, bởi vì không có nó tôi đôi khi không nhận thấy lỗi trong danh sách lỗi cho đến khi tôi đã triển khai trang web của tôi và sau đó tự nhấn chúng. Được cảnh báo, nó sẽ thêm một số thời gian để xây dựng bước của bạn, làm chậm đáng kể nó xuống. Tùy thuộc vào những gì bạn đang cố gắng để đạt được, bạn có thể muốn chọn lọc cho phép/vô hiệu hóa nó để đạt được một xây dựng nhanh chóng -> công việc kiểm tra.

Cảm hứng cho câu trả lời này được lấy từ câu trả lời của Chris Hyne cho MVCBuildViews not working correctlyCan Razor views be compiled?.

+0

Điều này chỉ biên dịch khung nhìn sau khi xây dựng và hiển thị lỗi trên tệp C# được tạo. Nhưng những gì tôi cần là các lỗi biên dịch trong khung nhìn. – vtortola

+0

@vtortola Tôi không chắc tôi hiểu bạn đang làm gì sau đó.Với cấu hình này, nó sẽ dừng xây dựng của bạn, hiển thị danh sách các lỗi biên dịch, sau đó bạn có thể nhấp đúp vào chúng để đi đến chế độ xem thích hợp và xử lý chúng. Nếu đó không phải là những gì bạn đang sau, bạn có thể vui lòng giải thích tốt hơn? – mason

+0

chờ đợi nó hoạt động ngay bây giờ. Tôi đã nhận được một lỗi về một mô hình không tồn tại, có hai lỗi, một trong những mang lại cho tôi để xem và khác chỉ để tạo ra một tập tin C#. Cảm ơn! – vtortola

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