2012-10-25 32 views
5

Gần đây tôi đã nâng cấp lên VS.NET 2012 và tôi bắt đầu gặp phải một vấn đề rất bực bội khi gỡ lỗi.Buộc phải xây dựng lại dự án Depedencies trong Visual Studio 2012

Dự án A có tham chiếu dự án cho Dự án B. Khi tôi chỉnh sửa Dự án B, tôi mong đợi hành động xây dựng/gỡ lỗi Dự án A để phát hiện thay đổi trong Dự án B và tự động đưa nó vào trong quá trình xây dựng Dự án A. (Đó chính là điểm phụ thuộc của dự án.) Và đó chính xác là những gì đã từng xảy ra trong VS 2010.

Nhưng điều này không xảy ra vào năm 2012. Thật vậy, ngay cả khi tôi xây dựng Dự án B một cách rõ ràng, Dự án A sẽ không nhận thay đổi trừ khi tôi xây dựng lại dự án A.

Vì vậy, bây giờ tôi buộc phải xây dựng rõ ràng Dự án B sau đó quay lại Dự án A và xây dựng lại nó một cách rõ ràng các sửa đổi trong Dự án B sẽ được đưa vào.

Suy nghĩ?

+0

Loại dự án này là gì? Những loại thay đổi nào thể hiện vấn đề này? (Ví dụ: khi bạn chỉnh sửa Dự án B, bạn có thực sự thực hiện các thay đổi đối với yêu cầu A được xây dựng lại không?) –

+0

Một là ứng dụng Windows Forms (dự án A) và một là DLL (dự án B). Có, tôi đang thực hiện các thay đổi (thay đổi mã) sẽ buộc xây dựng trên dự án A. – RMD

Trả lời

6

Bạn đã đặt các dự án phụ thuộc trong giải pháp của mình chưa?

Chúng ta có thể cài đặt chúng từ:

Nhấp chuột phải solution-> Properties-> Dự án Dependencies

Bằng cách này, bạn đã xây dựng giải pháp của bạn trong Visual Studio IDE hoặc bằng lệnh msbuild?

Nếu bạn sử dụng msbuild để tạo dự án, bạn nên thêm thuộc tính DependsOnTargets vào tệp dự án của mình.

biết thêm thông tin bạn có thể tham khảo:

http://msdn.microsoft.com/en-us/library/ms366724.aspx

+0

Tôi đang sử dụng Visual Studio 2012. Dự án A có sự phụ thuộc vào Dự án B. Điều này được thiết lập tự động bởi VS.NET và Tôi chỉ cần kiểm tra lại nó. – RMD

3

đoạn thứ 3 của bạn dường như chỉ ra một sự hiểu lầm với công việc cách phụ thuộc. Tha thứ cho tôi nếu tôi nhầm.

Nếu dự án A có sự phụ thuộc vào dự án B, dự án B sẽ không buộc xây dựng lại dự án A. Dự án xây dựng Tuy nhiên cần kiểm tra các thay đổi trong dự án B và xây dựng lại B tự động nếu cần.

Dự án A trong trường hợp này là dự án gốc hoặc gốc. Xây dựng phụ huynh sẽ kiểm tra tất cả các dự án mà nó phụ thuộc và xây dựng lại chúng nếu chúng đã lỗi thời. Luôn xây dựng phụ huynh sẽ tự động xây dựng các phụ thuộc lỗi thời trước, và sau đó dự án cha mẹ sẽ được xây dựng để chọn bất kỳ thay đổi mới nào trong các phụ thuộc.

A 
\ 
    B 
    |\ 
    C D 

Trong ví dụ này, nếu B có phụ thuộc thì chúng cũng sẽ được tạo. Nếu bạn xây dựng B một cách rõ ràng, các phụ thuộc C và D của nó sẽ được kiểm tra và xây dựng lại nhưng không phải A.

Nếu bạn xây dựng một cách rõ ràng A, C và D đầu tiên sẽ được kiểm tra và xây dựng lại nếu cần thiết, sau đó B, rồi cuối cùng là A.

+1

Tôi không tin rằng tôi có bất kỳ sự hiểu lầm nào. Như tôi đã nói, tôi thực hiện các thay đổi trong dự án B. Tôi sau đó xây dựng dự án A và những thay đổi trong dự án B không được bao gồm. Quan điểm của tôi về xây dựng/xây dựng lại chỉ để minh họa cho công việc hiện tại của tôi, không phải để mô tả cách tôi mong đợi nó hoạt động. Giải thích của bạn vẫn không cho tôi biết tại sao xây dựng dự án A sau khi tôi đã thực hiện các thay đổi đối với dự án B không dẫn đến những thay đổi được đưa vào. – RMD

0

Tôi nghĩ bạn đang tìm kiếm một máy chủ tích hợp liên tục (CI). Một CI có thể được cấu hình để giám sát các kho mã nguồn và được kích hoạt để xây dựng các assembly đích khi các thay đổi mới đã được cam kết với cơ sở mã.

Nếu không, như những người khác đã đề cập, phụ thuộc dự án có thể được sử dụng để xây dựng lại các hội đồng được tham chiếu.

1

Tôi đã có một vấn đề tương tự trước đó, và nguyên nhân là của một tham chiếu đến B là một tài liệu tham khảo thường xuyên (đến tập tin DLL), chứ không phải là một "dự án tham khảo ". Tình huống này chắc chắn sẽ giải thích hành vi bạn thấy.

Để kiểm tra, hãy xem ProjectA.csproj trong trình chỉnh sửa văn bản và kiểm tra tất cả các yếu tố <Reference><ProjectReference> để đảm bảo chúng là cách bạn cho là đúng.

+0

Nếu đây không phải là vấn đề thì có gì đó sai với tệp dự án hoặc Visual Studio có vấn đề. – makhdumi

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