Cách xác định lý do studio trực quan có thể bỏ qua các dự án khi xây dựng giải pháp


92

Tôi đang gỡ lỗi công việc của người khác và giải pháp là khá lớn. Khi tôi cố gắng xây dựng toàn bộ mọi thứ, một số dự án trong giải pháp không xây dựng và chỉ bỏ qua. Xem cửa sổ đầu ra trong quá trình xây dựng cho biết:

1> ------ Đã bỏ qua Xây dựng lại Tất cả: Dự án: pr1lib ------

Làm cách nào để xác định lý do tại sao các bản dựng này bị bỏ qua? Tôi không thể tìm thấy đầu ra bổ sung.

Đây là với VS2008 và giải pháp bao gồm mã c # và c ++.


Ngoài các câu trả lời được cung cấp, đảm bảo các thiết lập cấu hình giải pháp có từng dự án trong tình trạng kiểm tra (hộp kiểm được kiểm tra) mà nên được làm sạch / xây dựng:Build > Configuration Manager: check as needed
Metro Smurf

2
Để khắc phục sự cố tại sao các dự án bị bỏ qua. Đảm bảo thêm /flvào cài đặt xây dựng để nhận tệp msbuild.log bao gồm lý do. Ví dụ:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D - tôi sẽ thêm '/ fl' vào đâu trong Visual Studio? Nhật ký sẽ xuất hiện ở đâu? Nếu bạn thêm câu này làm câu trả lời, tôi sẽ ủng hộ, vì hầu hết các câu trả lời khác đều là những phỏng đoán ngẫu nhiên khác nhau để giải quyết vấn đề thay vì trả lời câu hỏi ban đầu, chỉ đơn giản là để lấy thêm thông tin về vấn đề.
PaulG

@PaulG Xem câu trả lời của tôi bên dưới. Chỉ cần đặt cài đặt trong Tùy chọn.
Darren Wood

Câu trả lời:


85

Nhấp chuột phải vào giải pháp, chọn Thuộc tính và sau đó Thuộc tính cấu hình. Ở đây bạn có thể chọn những dự án để xây dựng.

[ sửa ]:
Xem nhận xét của Kdt: ... khi tôi xem thuộc tính cấu hình ... mục tiêu xây dựng dự án được định cấu hình cho "Nền tảng hỗn hợp" trong khi giải pháp được đặt để xây dựng "Bất kỳ CPU nào".

* Khi sự cố này xảy ra với tôi, Dự án chính chỉ có 'Bất kỳ CPU nào' và nó cũng đặt dll con thành 'bất kỳ CPU nào', tuy nhiên, tôi đã xóa hồ sơ đó và chỉ để lại 'x86'. Chọn x86 chỉ cho dll làm cho nó bắt đầu hoạt động
[/ chỉnh sửa]


20
Tôi đang gặp một "bản dựng bị bỏ qua" bí ẩn và khi tôi xem xét các thuộc tính cấu hình, dự án thực sự đã được đánh dấu để xây dựng. Tuy nhiên, mục tiêu xây dựng dự án đã được định cấu hình cho "Nền tảng hỗn hợp" trong khi giải pháp được đặt để xây dựng "Bất kỳ CPU nào" - việc thay đổi các mục tiêu này để phù hợp đã khắc phục sự cố.
kdt

2
Trong trường hợp của tôi, mặc dù tất cả các dự án và giải pháp đều được đặt thành "Bất kỳ CPU nào", một dự án đã bỏ qua việc xây dựng. Chỉ sau khi tôi đặt giải pháp thành "Nền tảng hỗn hợp" rồi quay lại "Bất kỳ CPU nào" thì nó mới được xây dựng. Nhìn vào sự khác biệt của tệp giải pháp trước và sau đó, nó đã thay đổi từ {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUthành {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. Sự khác biệt duy nhất là khoảng trống được thêm vào giữa "Bất kỳ" và "CPU" ở cuối dòng.
Simon Tewsi

5
Trong trường hợp của tôi, tất cả các dự án được đặt thành "Bất kỳ CPU nào" và vấn đề được giải quyết bằng cách xóa các dự án (xóa dự án không khiến các tệp bị xóa) và thêm lại chúng vào giải pháp.
Hamid Mayeli

41

Tôi vừa gặp vấn đề tương tự- "dỡ dự án" và "tải lại dự án" đã giải quyết được vấn đề!


Tôi gặp vấn đề tương tự và việc dỡ / tải lại vẫn hoạt động, nhưng vấn đề dường như quay trở lại gây khó chịu khi nó xảy ra với một loạt các dự án và bạn phải giải nén / tải lại từng dự án ... Bất kỳ ai biết nếu có cách để tránh điều này hoàn toàn?
Liron

Điều này đã khắc phục sự cố cho tôi khi Visual Studio báo cáo sai các dự án là đã được cập nhật trong cửa sổ đầu ra, khi cố gắng xây dựng.
Kevin Laity

28

Các hoạt động xây dựng, xây dựng lại và dọn dẹp đã bị bỏ qua. Tải xuống và tải lại không giúp được gì và cũng không khởi động lại Visual Studio.

Sau khi tôi xóa dự án khỏi giải pháp và thêm lại nó, nó không còn bị bỏ qua nữa. Để loại bỏ nó, trong Solution Explorer, bấm chuột phải vào dự án> Loại bỏ> OK. Để thêm lại nó, trong Solution Explorer, bấm chuột phải vào giải pháp> Thêm> Dự án hiện có và chọn dự án của bạn


6
Hãy nhớ rằng bạn sẽ phải thêm lại tất cả các Tài liệu tham khảo của Dự án vào dự án đó.
Joseph

9

Nếu đối số là x64 và trình biên dịch x64 chưa được cài đặt, nó sẽ bỏ qua dự án.


1
1 Thiên tài. Bạn có thể tìm thấy SP1 tại đây: microsoft.com/download/en/details.aspx?id=10986
ashes999

Khi trình biên dịch x64 không được cài đặt, bạn thậm chí không thể chọn x64.
Calmarius

Giải pháp và cấu hình dự án có thể xác định và sử dụng mục nhập có tiêu đề "x64". Ddl thứ 3 cho vòm bộ xử lý. (Mục tiêu nền tảng - ở nửa dưới trang thuộc tính bản dựng) là bản không có sẵn
StingyJack

9

Giải pháp của tôi giống như đã đề cập trước đây: Xóa -> Thêm dự án hiện có

Nhưng giải pháp này ngụ ý rằng các tham chiếu giữa các dự án sẽ biến mất

Để tránh thêm lại các tham chiếu:trong trường hợp nếu bạn sử dụng hệ thống kiểm soát phiên bản như GIT hoặc TFS hoặc bất cứ thứ gì, bạn có thể đạt được mục tiêu bằng các bước sau:

  1. Đảm bảo rằng tất cả các thay đổi đã được cam kết / đăng ký trước khi hoạt động

  2. Xem qua tất cả các dự án xóa chúng khỏi giải pháp và bổ sung hiện có

  3. Lưu ý rằng tệp .sln đã thay đổi

  4. Giữ tệp .sln mới, nhưng hoàn tác các thay đổi đối với tất cả các tệp .cspoj bằng hệ thống kiểm soát phiên bản



5

Visual studio 2008, có thể là do trình biên dịch 64 bit chưa được cài đặt.

Bảng điều khiển -> Chương trình và Tính năng -> Microsoft Visual Studio 2008 chuyên nghiệp -> [nhấp đúp]

Trên hộp thoại Visual Studio

Tiếp theo -> Thêm / xóa Tính năng -> (Dưới) Visual C ++ -> (chọn) trình biên dịch x64 và Công cụ


3

Này, vừa mới sửa cái này. Nghĩ rằng nó có thể hữu ích. Rất có thể bạn đã không cài đặt các trình biên dịch tương ứng cùng với studio trực quan. Điều này đã xảy ra với tôi hôm nay - theo mặc định, trình cài đặt VS 2008 không cài đặt trình biên dịch C ++ x64.

Nếu bạn có SP1, hãy gỡ cài đặt nó trước khi thay đổi cài đặt VS. Khi hoàn tất, hãy cài đặt lại SP1.


3

Vấn đề cũng tồn tại trong VS 2010; của các giải pháp được đề xuất: chỉnh sửa cấu hình bản dựng, làm sạch, thay đổi / thay đổi lại khung mục tiêu, KHÔNG hoạt động. Nhưng dỡ bỏ và tải lại dự án thì có.


2

Chuyển đến menu xây dựng và chọn "trình quản lý cấu hình". Điều này sẽ hiển thị các dự án được cấu hình để xây dựng trong cấu hình đã chọn của bạn.


2

Tôi đã có một điều tương tự xảy ra với tôi. Tôi không chắc vấn đề là gì, nhưng nó sẽ không làm sạch , xây dựng , xây dựng lại , v.v. Tôi đang hoạt động trong Visual Studio 2017 và muốn netstandard2.0lắp ráp. Vấn đề đối với tôi là bằng cách nào đó loại dự án không chính xác, có thể tôi bắt đầu từ một netcoreappthư viện lớp, một cái gì đó tương tự, bị mắc kẹt trong tệp Giải pháp , tôi không nhớ. Dù sao, tôi đã sao lưu dự án, tạo một netstandarddự án thư viện lớp mới , và tính vào các bit đã sao lưu, và điều đó đã khắc phục sự cố cho tôi. HTH ai đó.


2

Tôi đã có một điều kỳ lạ có thể đáng ghi lại trong số các khả năng khác ở đây ..

Tôi đã thêm một Dự án được chia sẻ vào giải pháp của mình, với mã được sử dụng trong hai hoặc ba dự án khác. Như bạn đã biết - Các dự án được chia sẻ chỉ là mã, và không thực sự là một dự án theo nghĩa truyền thống .. Bạn không thể 'xây dựng' một dự án được chia sẻ, nó chỉ là mã được nhúng vào các dự án khác và sau đó được xây dựng ở đó.

Nhưng bằng cách nào đó, tệp giải pháp của tôi đã được cập nhật như thể dự án được chia sẻ là thứ riêng cần xây dựng. Sau đó, tôi đoán rằng bất kỳ lúc nào tôi đang cố gắng xây dựng và tôi chưa thay đổi mã trong dự án được chia sẻ, thì nó nhận ra 'không có gì thay đổi, hãy bỏ qua các bản dựng đó'

Tôi tìm thấy dự án được chia sẻ trong solution.slntệp như:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..cũng được. Điều không ổn là dự án này cũng xuất hiện GlobalSection(ProjectConfigurationPlatforms) = postSolutionnhư sau:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

Tôi đã xóa bốn dòng đó khỏi .slntệp của mình và bây giờ mọi thứ có vẻ vui trở lại


Tuyệt quá! Đây chính là nó! Tôi đã xóa mọi hàng khỏi tệp .sln bắt đầu bằng một hàng chỉ cho biết "Toàn cầu" và xóa tất cả các hàng xuống "EndGlobal". Sau đó, nó hoạt động trở lại.
Ted

2
  1. Đóng studio trực quan
  2. Mở tệp sln bằng notepad
  3. xóa tất cả những thứ như sau: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (sẽ có một loạt chúng)

4. lưu tệp 5. mở studio trực quan và tất cả đều tốt hơn


2
Tại sao điều này lại giúp ích? Thêm một số giải thích và càng chi tiết càng tốt để người đọc trong tương lai có thể giúp hiểu lý do tại sao bạn cần thực hiện các bước đó.

2

Tôi đã cập nhật lên 15.9.11, ... sau một số lần xây dựng, cùng một vấn đề: hầu hết các dự án bị bỏ qua (xây dựng một giây trước mà không gặp sự cố). Việc dỡ / tải lại giải pháp luôn hữu ích trong trường hợp của tôi, nhưng nó sẽ sớm xảy ra một lần nữa.

Tôi không biết tại sao ... ngoại trừ một lỗi lớn trong VS2017

Tôi đã kiểm tra trình quản lý cấu hình, tất cả các dấu kiểm được thiết lập để xây dựng.

Có thể, nó có liên quan gì đó đến các gói nuget, nhưng đó chỉ là phỏng đoán

Giải pháp chỉ có c ++ / vcxproj, không có csproj. 64 và 32 được cài đặt cả hai


2

Điều đầu tiên bạn cần làm là chẩn đoán lý do tại sao bản dựng đang bỏ qua các dự án. Vì vậy, để có được một đầu ra xây dựng chi tiết, hãy thay đổi độ chi tiết thành detailedở vị trí sau trong Visual Studio.

nhập mô tả hình ảnh ở đây


7
Rất tiếc, cài đặt chi tiết không giúp ích gì. Kết quả vẫn chỉ cho biết 'dự án bị bỏ qua' mà không giải thích lý do tại sao.
PaulG

1

Gặp vấn đề tương tự, phát hiện ra rằng cài đặt dự án dành cho CPU Itanium, việc thay đổi nó thành Intel đã khắc phục sự cố.


1

Đã gặp sự cố tương tự với VS2005, tất cả các cấu hình đều đúng. Nó thậm chí còn bỏ qua lệnh Clean project.

Cuối cùng thì việc Unloading / Reloading đã làm được điều kỳ diệu.


1

Nhấp chuột phải vào Giải pháp tại trình khám phá giải pháp của bạn, sau đó nhấp vào Thuộc tính ở cuối trình đơn. Trong cửa sổ thuộc tính , nhấp vào Thuộc tính cấu hình -> Cấu hình ở khung bên trái, bạn sẽ thấy danh sách các dự án ở khung bên phải, hãy đảm bảo hộp kiểm Xây dựng được chọn trong cửa sổ bật lên.


1

Nếu giải pháp của bạn chứa tệp dự án NuGet (* .nuproj), hãy thử dỡ bỏ nó và sau đó xây dựng lại giải pháp của bạn.

Điều này làm việc cho tôi sau khi không có cách nào ở trên hoạt động.


0

Tôi thấy rằng đôi khi bạn có nền tảng mục tiêu như được thiết lập để giả sử x86 trong giải pháp của bạn và trong các dự án của bạn, dự án không thực sự luôn luôn được chọn.

Để kiểm tra kỹ, hãy chuyển đến các thuộc tính của dự án và xem liệu bạn có thể chọn nền tảng đó trong cài đặt Xây dựng-> Nền tảng hay không, nếu không, bạn sẽ cần phải đi tới trình quản lý cấu hình và tạo cấu hình đó.


0

Tôi gặp sự cố này với một số dự án Windows CE trên PC mới. "Dự án dỡ bỏ" và "Tải lại dự án" xuất hiện để khắc phục sự cố, nhưng thực sự Visual Studio đã chuyển sang một nền tảng khác và xây dựng nó.

Hóa ra là mặc dù nền tảng WinCE của tôi được hiển thị là nền tảng hoạt động, nhưng Visual Studio "thực sự" không thấy nó. Giải pháp là cài đặt lại WinCE SDK với các đặc quyền của quản trị viên :

  • Đảm bảo rằng Visual Studio 2008 không chạy.
  • Mở “Visual Studio 2008 Command Prompt” với tư cách Quản trị viên. Trên Windows 7, chỉ cần nhấp chuột phải vào đường tắt và chọn tùy chọn “Run as administrator”.
  • Nhập lệnh sau: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Khi được hỏi liệu bạn có muốn thực hiện tùy chỉnh cài đặt tùy chỉnh hay hoàn chỉnh, và hướng dẫn trình cài đặt bỏ qua cài đặt tài liệu (trong trường hợp của tôi thì bước này không cần thiết; trên thực tế, tôi chỉ yêu cầu nó "sửa chữa" cài đặt hiện có). )
  • Tải về

0

VS 2008 sẽ bỏ qua mục tiêu x64 nếu bạn chưa cài đặt trình biên dịch x64. VS 2008 không theo mặc định. Đại loại.


0

Tôi đã gặp sự cố tương tự sau khi tạo một dự án từ trình dịch ngược từ Telerik, sau đó cố gắng biên dịch lại nó. Dự án đã bị bỏ qua bất cứ khi nào tôi cố gắng xây dựng lại nó. Đã thử rất nhiều đề xuất ở trên, nhưng đối với tôi, đó là .NET Framework được chọn trong thuộc tính dự án.

Nhấp chuột phải vào dự án trong tệp giải pháp, chọn thuộc tính, tab ứng dụng, thay đổi khung mục tiêu từ 4.0 sang 3.5.

Sau đó, xây dựng lại và tôi gặp một loạt lỗi thiếu tham chiếu lắp ráp, điều này có ý nghĩa vì tôi chưa thêm tham chiếu vào chúng.


0

Tôi cập nhật một bản cập nhật nhỏ của Visual Studio 2017 và sau đó trình cài đặt nhắc tôi khởi động lại máy tính của mình, nhưng tôi không khởi động lại. Khi tôi xây dựng dự án hoặc giải pháp của mình trong Visual Studio 2017, tôi gặp sự cố tương tự ở trên. Tôi đoán có thể là bản cập nhật chìa khóa, vì vậy tôi khởi động lại máy tính của mình, tôi đã làm được.:>


0

Tôi đã gặp sự cố này trong Visual Studio 2017 15.9.4 và sau một số tìm kiếm và dành thời gian, tôi phát hiện ra rằng trong giải pháp của mình, tệp .csproj của một trong các dự án đã bị hỏng sau khi hợp nhất trong TFS. (Tôi có thể xây dựng các dự án khác bằng cách dỡ bỏ dự án có vấn đề khỏi giải pháp). Cách tôi giải quyết vấn đề của mình là tôi đã so sánh tệp .csproj trước và sau khi hợp nhất và khắc phục điều đó. Và bằng cách khắc phục, ý tôi là vì loại dự án của riêng tôi là .netStandard, tôi đã loại bỏ các dòng không cần thiết bao gồm Nhóm Thuộc tính Cấu hình , tất cả và các dòng khác trong tệp .csproj mới để làm cho nó giống với phiên bản kiểu .net Chuẩn trước đó.


0

Tôi đã gặp sự cố tương tự, tôi có một dự án không thể tải trong trình khám phá giải pháp do một số lý do. Khi tôi tải dự án đó, nó hoạt động như một sự quyến rũ.


0

Tôi chỉ gặp rắc rối này:

Đã cập nhật VS 2017 lên phiên bản mới nhất 15.9.11 và một số dự án của tôi được cập nhật lên .net core 2.2. Ban đầu tôi tải tất cả các dự án đã thử xây dựng / dọn dẹp / xây dựng lại và mọi thứ đều bị bỏ qua. Làm theo các bước dưới đây để giải quyết:

  1. Tôi dỡ từng dự án và tải lại chúng.
  2. Đóng tất cả các phiên bản của VS và mở VS với tư cách quản trị viên (nhấp chuột phải vào đường tắt và chọn tùy chọn "Chạy với tư cách quản trị viên")

Vậy là mọi thứ đã hoạt động trở lại và tôi đã có thể xây dựng tất cả các dự án thành công.


0

Phòng thu hình ảnh 2017

Sau khi thêm cấu hình trong Trình quản lý cấu hình

Nhấp chuột phải vào Dự án -> Chỉ dự án -> Chỉ xây dựng / Chỉ xây dựng lại / Chỉ làm sạch

nếu tất cả các cài đặt khác là chính xác.


0

Vấn đề: Xây dựng lại, Xây dựng, Làm sạch đã bỏ qua tất cả các dự án của tôi ngoại trừ hai trong số chúng.

Các giải pháp không hiệu quả với tôi:

  1. Cài đặt cấu hình giải pháp như mong đợi vì vậy không có thay đổi nào trong chúng giúp ích.

  2. Tải xuống và tải lại không hoạt động.

Lý do xuất hiện:

Điều này xảy ra vì khung công tác .NET mục tiêu cao hơn (4,7) cho 2 dự án đó nhưng thấp hơn cho các dự án khác. Ban đầu, một lời nhắc xuất hiện yêu cầu tôi cài đặt .NET 4.7, tôi đã thực hiện nhưng hóa ra không thể nhận ra rằng nó đã được cài đặt mà không cần khởi động lại máy của tôi.

Các giải pháp đã hoạt động:

  1. Khởi động lại máy của tôi đã thực hiện thủ thuật. Sau khi khởi động lại, nó nhận dạng đúng rằng .NET 4.7 đã được cài đặt.
  2. Ngoài ra, hạ cấp khung mục tiêu của dự án bằng cách nhấp chuột phải vào dự án -> Thuộc tính -> Ứng dụng -> Khung mục tiêu và đặt nó giống như các dự án khác đang bị bỏ qua, cũng giải quyết được vấn đề.

Tôi khuyên bạn nên cài đặt .NET Framework mới nhất và khởi động lại máy để tránh gặp phải các vấn đề khác.


0

Nó sẽ bỏ qua các bản dựng trên bất kỳ dự án nào có các dự án phụ thuộc đã không xây dựng được.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.