Thuộc tính OutputPath không được đặt cho dự án này


120

Khi tôi cố gắng biên dịch dự án của mình từ chế độ gỡ lỗi x86 trong Visual Studio 2008. Tôi gặp lỗi này. Khi tôi nhìn vào nhóm thuộc tính của dự án bị khiếu nại, tôi thấy đường dẫn đầu ra đã được thiết lập.

Đây là phần nhóm thuộc tính cho tệp .csproj đó

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\x86\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <BaseAddress>285212672</BaseAddress>
  <FileAlignment>4096</FileAlignment>
  <DebugType>full</DebugType>
  <PlatformTarget>x86</PlatformTarget>
 <ErrorReport>prompt</ErrorReport>

Bất kỳ ai có thể làm sáng tỏ điều này?

LƯU Ý: Khi tôi biên dịch Gỡ lỗi này và Bất kỳ CPU nào nó hoạt động.

CẬP NHẬT: Lỗi 1 Thuộc tính OutputPath không được đặt cho dự án này. Vui lòng kiểm tra để đảm bảo rằng bạn đã chỉ định kết hợp Cấu hình / Nền tảng hợp lệ. Cấu hình = 'Gỡ lỗi' Platform = 'x86'


Ok và bạn sử dụng cấu hình và nền tảng nào? Gỡ lỗi + x86 hay thứ gì khác?
Ondrej Tucny,

Có Trình quản lý cấu hình VS Tôi chọn gỡ lỗi + x86
Amzath

@DmitryShkuropatsky đã cập nhật thông báo lỗi
Amzath

1
Nó có vẻ chính xác. Có dự án nào khác trong giải pháp có thể gây ra lỗi không?
Dmitry Shkuropatsky,

@DmitryShkuropatsky bạn nói đúng, đó là một dự án khác có vấn đề. Nhưng VS phàn nàn về dự án đang được biên soạn
Amzath

Câu trả lời:


214

Tôi đã gặp phải lỗi tương tự sau khi thêm cấu hình mới qua ConfigurationManager trong Visual Studio.

Hóa ra khi cấu hình 'Sản xuất' được thêm cho toàn bộ giải pháp (và từng dự án), phần tử OutputPath không được thêm vào tệp .csproj.

Để khắc phục, tôi đã chuyển đến tab Build trong thuộc tính dự án, thay đổi OutputPath từ \bin\Production\thành \bin\Production(đã xóa dấu \) và lưu các thay đổi. Điều này buộc phải tạo phần tử OutputPath trong tệp .csproj và dự án đã xây dựng thành công.

Nghe có vẻ trục trặc với tôi.


7
Rất tốt khi bắt được lỗi nghiêm trọng này. Sẽ không bao giờ có thể ngờ rằng một nhát chém có thể tạo ra sự khác biệt lớn đến vậy. Có huy hiệu Câu trả lời tốt.
ouflak

8
Trong trường hợp của tôi, việc xây dựng tệp proj, sự khác biệt giữa any cpuanycpulà vấn đề, nhưng bài đăng của bạn đã giúp tôi thấy điều đó.
Joshua Drake

2
Cảm ơn bạn Roman, bạn đã cứu một ngày của tôi ... giá như tôi có thể ủng hộ câu trả lời của bạn 100 lần! :)
Martin

2
Vừa gặp phải điều này trong VS 2017 v15.6.6, bacon đã lưu, cảm ơn!
Angrist

1
@Joshua Drake, đây là một vấn đề quan trọng khi sử dụng VSTS. Visual studio trực tuyến sử dụng 'bất kỳ cpu nào', trong khi studio trực quan địa phương sử dụng 'anycpy'. Quan trọng đối với các tập lệnh xây dựng.
FrankyHollywood,

27

Bạn có thể thấy lỗi này trong VS 2008 nếu bạn có một dự án trong giải pháp của mình tham chiếu đến một hội đồng không thể tìm thấy. Điều này có thể xảy ra nếu lắp ráp đến từ một dự án khác không phải là một phần của giải pháp của bạn nhưng nên được. Trong trường hợp này, chỉ cần thêm đúng dự án vào giải pháp sẽ giải quyết được nó.

Kiểm tra phần Tham khảo của mỗi dự án trong giải pháp của bạn. Nếu bất kỳ tham chiếu nào trong số họ có tham chiếu với dấu x màu đỏ bên cạnh, thì bạn đã tìm thấy vấn đề của mình. Giải pháp không thể tìm thấy tham chiếu lắp ráp đó.

Thông báo lỗi hơi khó hiểu nhưng tôi đã thấy điều này nhiều lần.


2
Trong trường hợp của tôi, đó là "cảnh báo màu vàng"
AXMIM

26

Nếu bạn đang sử dụng WiX, hãy xem phần này (có một lỗi) http://www.cnblogs.com/xixifusigao/archive/2012/03/20/2407651.html

Đôi khi các cấu hình bản dựng mới được thêm vào .wixprojtệp sâu hơn bên dưới tệp, nghĩa là, được phân tách khỏi các định nghĩa cấu hình anh chị em của chúng bằng các phần tử XML không liên quan khác.

Chỉ cần chỉnh sửa .wixprojtệp sao cho tất cả các <PropertyGroup>phần xác định cấu hình bản dựng của bạn liền kề với nhau. (Để chỉnh sửa .wixprojtrong VS2013, hãy nhấp chuột phải vào dự án trong Solution Explorer, Unload project, nhấp chuột phải một lần nữa-> Chỉnh sửa YourProject.wixproj. Tải lại sau khi chỉnh sửa tệp.)


1
cảm ơn, điều này đã sửa nó cho tôi. Tôi đã có rất nhiều hành vi kỳ lạ khi tôi thêm nhiều cấu hình vào dự án. Ngay sau khi tôi dọn dẹp tệp dự án, mọi thứ đều hoạt động tốt. (Lỗi này được báo cáo lần đầu tiên vào năm 2012? Tuyệt vời ...)
Kirschi

Cảm ơn bạn, điều này cũng đã sửa nó cho tôi
PeterD

15

Điều này xảy ra với tôi vì tôi đã di chuyển dòng sau đến gần phần đầu của tệp .csproj:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>

Nó cần được đặt sau Nhóm Thuộc tính xác định Cấu hình | Nền tảng của bạn.


11

Lỗi được hiển thị trong studio trực quan cho dự án (Giả sử A) không có vấn đề. Khi tôi nhìn vào cửa sổ đầu ra của quy trình xây dựng từng dòng cho mỗi dự án, tôi thấy rằng nó đang phàn nàn về một dự án khác (B) đã được gọi là lắp ráp trong dự án A. Dự án B được thêm vào giải pháp. Nhưng nó đã không được tham chiếu trong dự án A dưới dạng tham chiếu dự án thay vào đó là tham chiếu lắp ráp từ vị trí khác. Vị trí đó chứa tập hợp được biên dịch cho Nền tảng AnyCpu. Sau đó, tôi xóa tham chiếu lắp ráp khỏi dự án A và thêm dự án B làm tham chiếu. Nó bắt đầu biên dịch. Không chắc chắn mặc dù bản sửa lỗi này hoạt động như thế nào.


15
Deffo hãy thử với \ p: Platform = "AnyCPU" thay vì \ p: Platform = "Bất kỳ CPU nào". Tôi đã làm việc đó! Đã nhìn vào điều này cho các lứa tuổi!
Lee Englestone

AnyCPU (Không có khoảng trống) cũng hoạt động với tôi. Cảm ơn Lee.
willem

1
Tôi đã gặp lỗi khi chạy quy trình xây dựng trên TFS 2017, sau khi tôi thay đổi "Đường dẫn đến giải pháp hoặc các gói.config" từ .sln thành .vbproj. Thay đổi BuildPlatform thành AnyCPU cũng hiệu quả với tôi. Xem ghi chú trong "Nền tảng" tại đây: docs.microsoft.com/en-us/vsts/build-release/tasks/build/…
Mr.Zzyzzx

2
Trong trường hợp của tôi, khi khởi chạy bản dựng từ TFS, "any cpu"là giá trị mặc định cho BuildPlatform. Thay đổi để "AnyCPU"giải quyết vấn đề.
XouDo

Đây là năm 2020 - AnyCPU so với Any CPU vẫn là một nhà sản xuất rắc rối. Tôi đang sử dụng VS2019 và vẫn nhận được điều này trên các dự án mới. MS tại sao bạn lại trừng phạt cộng đồng nhà phát triển?
Christian

9

Tôi gặp phải lỗi tương tự nhưng sự cố hóa ra là do tôi đã tạo cấu hình mới trong giải pháp của mình mà không tồn tại trong các hội đồng tham chiếu từ giải pháp khác.

Điều này có thể được giải quyết bằng cách mở giải pháp liên quan và thêm cấu hình mới vào nó.

Bài đăng này cho tôi ý tưởng để kiểm tra các hội đồng được tham chiếu sau khi tôi đã xác nhận rằng tất cả các dự án trong giải pháp của tôi có cấu hình chính xác:

http://gabrielmagana.com/2010/04/solution-to-the-outputpath-property-is-not-set-for-this-project/


7

đã gặp sự cố này dưới dạng đầu ra từ Azure DevOps sau khi thiết lập để tạo .csproj thay vì .sln trong Đường ống xây dựng.

Giải pháp cho tôi: Chỉnh sửa .csproj của dự án bị ảnh hưởng, sau đó sao chép toàn bộ

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCpu' ">

Nút, dán nó, và sau đó thay đổi dòng đầu tiên như sau:

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|any cpu' ">

Lý do là, trong trường hợp của tôi, lỗi cho biết

Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='release'  Platform='any cpu'.  

Tại sao Azure muốn sử dụng "bất kỳ cpu nào" thay vì "AnyCpu" mặc định là một bí ẩn đối với tôi, nhưng bản hack này hoạt động.


Bằng cách làm theo ý tưởng của bạn, tôi phát hiện ra rằng trong trường hợp của mình, tôi không cần thực hiện thay đổi trong dự án, nhưng thay vào đó trong bước Xây dựng Visual Studio của tôi trong DevOps, tôi thiết lập trường Đối số để sử dụng biến có giá trị AnyCpu.
donatasj87

@ donatasj87 bạn có vui lòng đăng toàn bộ giá trị của trường này được không?
Jay

1
Giá trị đầy đủ hoàn toàn giống nhau, điều này cũng sẽ hoạt động trong bản dựng TFS. Nó chỉ cần khớp với giá trị được thiết lập trong tệp .csproj của bạn. Bạn có thể thấy nó trong hình này: pasteboard.co/JbdvBT5.png
donatasj87 Ngày

4

Tôi đã gặp lỗi tương tự, vì vậy tôi đã xem xét cài đặt dự án và trong phần "Xây dựng" là tùy chọn "Xây dựng đường dẫn đầu ra". Và giá trị trống. Vì vậy, tôi đã điền vào giá trị "bin \", một lỗi đã biến mất. Nó đã giải quyết vấn đề của tôi.


3

Tôi có:

  1. Nhấp chuột phải vào dự án có vấn đề -> Dỡ dự án
  2. Nhấp chuột phải vào dự án và chọn Chỉnh sửa * .csproj
  3. Sao chép-dán cấu hình từ cấu hình hiện có hoạt động với tên và nền tảng nhắm mục tiêu cụ thể (Tôi đã có Bản phát hành | x64 ):

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
      <OutputPath>bin\x64\Release\</OutputPath>
      <DefineConstants>TRACE</DefineConstants>
      <Optimize>true</Optimize>
      <DebugType>pdbonly</DebugType>
      <PlatformTarget>x64</PlatformTarget>
      <ErrorReport>prompt</ErrorReport>
      <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
      <Prefer32Bit>true</Prefer32Bit>
    </PropertyGroup>
  4. Nhấp chuột phải vào dự án -> Tải lại dự án
  5. Xây dựng lại dự án / giải pháp

3

Nếu bạn gặp lỗi này chỉ khi bạn cố gắng biên dịch dự án của mình từ dòng lệnh bằng MSBuild (như trong trường hợp của tôi) thì giải pháp là chuyển đường dẫn đầu ra theo cách thủ công tới MSBuild với một đối số như /p:OutputPath=MyFolder.


2

Một khả năng điên rồ khác: Nếu bạn làm theo một sắp xếp điều khiển nguồn đơn giản là đặt Branch \ Main, Main và Release bên cạnh nhau và bằng cách nào đó, bạn sẽ thêm một dự án hiện có từ Main thay vì Branch \ Main (giả sử giải pháp làm việc của bạn là Branch \ Chính), bạn có thể thấy lỗi này.

Giải pháp rất đơn giản: tham khảo dự án phù hợp!


2

Tôi đã gặp sự cố này khi thêm một dự án vào một giải pháp sau đó tham chiếu nó từ một dự án khác trong cùng một giải pháp-- có biểu tượng cảnh báo màu vàng trên tham chiếu, thông báo rằng đường dẫn trống.

Giải pháp tương tự như những gì @Amzath đề xuất, các dự án của tôi đang được biên dịch với các Khung mục tiêu khác nhau, ví dụ: .NET 4.0 so với 4.5.


2

Trong trường hợp của tôi, địa chỉ cài sẵn của ứng dụng của tôi được đặt thành một máy tính khác đã bị tắt, vì vậy tôi đã bật nó lên và khởi động lại VS và sự cố đã được giải quyết.


2

Một nguyên nhân khác: bạn thêm tham chiếu dự án từ dự án A đến dự án B trong giải pháp X. Tuy nhiên, giải pháp Y đã chứa dự án A hiện đã bị hỏng, cho đến khi bạn cũng thêm dự án B vào giải pháp Y.


2

Tôi đã gặp vấn đề tương tự sau khi thêm cấu hình mới và xóa cấu hình "gỡ lỗi" và "phát hành". Trong trường hợp của tôi, tôi đang sử dụng tệp cmd để chạy quá trình xây dựng và xuất bản, nhưng lỗi tương tự đã xảy ra. Giải pháp cho tôi: Trong tệp csproj như sau:

<Configuration Condition=" '$(Configuration)' == '' ">Debug< /Configuration>

đang đặt Cấu hình thành "Gỡ lỗi" nếu tôi không chỉ định cấu hình rõ ràng. Sau khi thay đổi giá trị nút từ "gỡ lỗi" thành cấu hình tùy chỉnh của tôi, tất cả đều hoạt động trơn tru. Hy vọng điều này cũng sẽ giúp ích cho những ai đang đọc nó :)


Chi tiết cho giải pháp này được đề cập trong bài đăng diễn đàn này. social.msdn.microsoft.com/Forums/vstudio/en-US/…
Sunny Tambi

2

Tôi đã gặp vấn đề tương tự, Chỉ cần chỉnh sửa .wixproj để có tất cả các <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ... >phần tử nằm cạnh nhau.

Điều đó đã giải quyết vấn đề của tôi


1

Dự án WiX mà tôi đang sử dụng đã được thiết lập cố định trong trình quản lý cấu hình cho x64toàn bộ. Khi thực hiện dự án Hành động tùy chỉnh cho giải pháp, nó đã mặc định mọi thứ x86trong .csprojtệp. Vì vậy, tôi đã dỡ bỏ dự án, chỉnh sửa nó bằng cách thay đổi tất cả x86thành x64, lưu, tải lại và rất tốt để tiếp tục sau đó.

Tôi không hiểu tại sao tôi phải làm điều này. Trình quản lý cấu hình được đặt để xây dựng là x64, nhưng sẽ không được đặt trong csprojtệp :(


0

Sau khi thử tất cả các đề xuất khác được đăng ở đây, tôi phát hiện ra giải pháp cho mình là xóa phần sau khỏi .csprojtệp:

  <ItemGroup>
    <Service Include="{808359B6-6B82-4DF5-91FF-3FCBEEBAD811}" />
  </ItemGroup>

Rõ ràng dịch vụ này từ dự án ban đầu (không khả dụng trên máy cục bộ) đang tạm dừng toàn bộ quá trình xây dựng, mặc dù nó không cần thiết cho việc biên dịch.


0

Tôi gặp sự cố này sau khi thêm một nền tảng mới vào dự án của mình. Trong trường hợp của tôi, tệp .csproj nằm dưới quyền kiểm soát nguồn của Perforce và ở chế độ chỉ đọc. Tôi đã kiểm tra nó nhưng VS không nắm bắt được thay đổi cho đến khi tôi khởi động lại nó.


0

Tôi đã gặp vấn đề tương tự trên một Dự án Xamarin. Nó có thể là trường hợp hiếm nhưng trong trường hợp bất kỳ ai khác đang gặp sự cố. cấu trúc dự án của tôi như dưới đây

  • Dự án xamarin.Android có tham chiếu từ dự án xamarin.android.library.
  • Tôi đã tạo một plugin bằng cách sử dụng một số mã từ dự án android.library.
  • Bây giờ đây là vấn đề. nếu bạn thêm tham chiếu dự án hoặc cài đặt nuget trên dự án thư viện xamarin.android. Bạn sẽ gặp lỗi này. Các nhà phát triển giả định rằng mã đó nằm trong dự án Android.Library và tôi phải tham khảo plugin mới trong dự án này. KHÔNG!
  • bạn phải thêm một tham chiếu về dự án Android chính. bởi vì plugin-> thư viện-> đầu ra của dự án chính không được sản xuất.
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.