2010-10-14 27 views
12

Tôi có dự án VS 2008 Professional và thiết bị thông minh .NET C#. Tôi có tổng cộng ~ 100 tệp cs. Việc xây dựng mất một thời gian rất dài, tôi phải đợi cho mối liên kết xấp xỉ. 1 phút (60 giây) mỗi khi tôi biên dịch dự án. Tôi có Core i3, RAM 4GB, 7200rpm.VS 2008 Chuyên nghiệp, Thiết bị thông minh .NET C# project - xây dựng chậm

Điều gì gây ra điều này và làm cách nào tôi có thể tối ưu hóa bản dựng? Bất kỳ tùy chọn Visual Studio nào?

+2

C# không sử dụng trình liên kết. Thay đổi đầu ra MSBuild để chẩn đoán và dán thời gian bạn nhìn vào câu hỏi của bạn. Công cụ + Tùy chọn, Dự án và Giải pháp, Xây dựng và Chạy. –

Trả lời

19

Nếu bạn làm theo lời khuyên từ nhận xét của Hans Passant và đặt MSBuild thành đầu ra chẩn đoán, nó sẽ cho hình ảnh rõ ràng hơn về những gì đang diễn ra. Nếu bạn thấy rằng bản dựng của bạn đang treo trên Trình biên dịch cấp phép (LC.exe) thì điều này có thể là do nó đang cố gắng gọi một máy chủ và thời gian. Bạn có thể giải quyết điều này bằng cách thay đổi Machine.config của bạn -

chỉnh sửa c: \ windows \ microsoft.net \ framework \ v2.0.50727 \ config \ Machine.config, và thêm khóa sau:

<configuration> 
    <runtime> 
     <generatePublisherEvidence enabled="false"/> 

EDIT: //

Dựa trên nhận xét bên dưới, tôi đã thực hiện một chút đào bới. Nhiệm vụ xác minh nền tảng có một vấn đề đã biết nơi nó chạy rất chậm trong VS2008. Chi tiết về nó có thể được tìm thấy ở đây:

http://blogs.msdn.com/b/vsdteam/archive/2006/09/15/756400.aspx

Một cách để khắc này là để vô hiệu hóa các nhiệm vụ riêng của mình trong xây dựng của bạn. Để làm điều này

1) Mở file:

%windir%\Microsoft.NET\Framework\v2.0.50727\Microsoft.CompactFramework.Common.Targets 

để chỉnh sửa.

2) Tới dòng mà đọc:

Name="PlatformVerificationTask"> 

và thay đổi nó để:

Name="PlatformVerificationTask" Condition="'$(SkipPlatformVerification)' != 'true'"> 

3) Thêm biến môi trường SkipPlatformVerification vào hệ thống và đặt nó là "true" (Để bật lại Xác minh nền tảng, hãy đặt biến môi trường thành "sai"). Nếu bạn cần trợ giúp về việc thiết lập biến môi trường, hãy đọc http://vlaurie.com/computers2/Articles/environment.htm. Nếu bạn không muốn thêm biến môi trường, bạn có thể hoán đổi điều kiện cho thứ gì đó luôn luôn sai (tức là Condition = "'true' == 'false'")

+0

Tôi đã kiểm tra mức chẩn đoán. Trong trường hợp của tôi, PlatformVerificationTask mất 290174 ms. Lý do là gì? – cubesoft

+0

Tôi tìm thấy tệp Microsoft.CompactFramework.Common.Targets trong thư mục 3.5 thay vì 2.0 % windir% \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.CompactFramework.Common.targets – fefferoni

+0

Thay đổi ** ** to ** ** nếu bạn không muốn xử lý các biến môi trường. –

3

Chỉ cần xác định lại mục tiêu trong. csproj tập tin như thế này. Sau đó, nó sẽ hoạt động trên máy tính, hoặc tất nhiên bạn có thể sao chép toàn bộ khối mã với dòng điều kiện được thêm vào. Dù bằng cách nào, bạn không cần sửa đổi tệp hệ thống.

<Target Name="PlatformVerificationTask"></Target> 
Các vấn đề liên quan