OutputPath özelliği bu proje için ayarlanmadı


120

Visual Studio 2008'de projemi x86 hata ayıklama modundan derlemeye çalıştığımda. Bu hatayı alıyorum. Şikayetçi olan projenin özellik grubuna baktığımda çıktı yolunun ayarlandığını görüyorum.

İşte o .csproj dosyası için özellik grubu bölümü

<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>

Kimse buna ışık tutabilir mi?

NOT: Bu Debug ve Any CPU derlendiğinde çalıştı.

GÜNCELLENDİ: Hata 1 Bu proje için OutputPath özelliği ayarlanmamış. Lütfen geçerli bir Yapılandırma / Platform kombinasyonu belirttiğinizden emin olun. Configuration = 'Debug' Platform = 'x86'


Tamam ve hangi yapılandırma ve platformu kullanıyorsunuz? Debug + x86 veya başka bir şey?
Ondrej Tucny

Evet VS konfigürasyon yöneticisi hata ayıklama +
x86'yı seçiyorum

@DmitryShkuropatsky hata mesajını güncelledi
Amzath

1
Doğru görünüyor. Çözümde hataya neden olabilecek başka bir proje var mı?
Dmitry Shkuropatsky

@DmitryShkuropatsky haklısınız, sorunu olan başka bir projeydi. Ancak VS, derlenmekte olan proje hakkında şikayet etti
Amzath

Yanıtlar:


214

Visual Studio'da ConfigurationManager aracılığıyla yeni bir yapılandırma ekledikten sonra tam olarak aynı hatayı aldım.

'Üretim' yapılandırma bütün çözüm (ve her proje) OutputPath elemanı için eklenmiş zaman ortaya çıktı değildi .Csproj dosyalarına eklendi.

Düzeltme için, ben, proje özelliklerinde Oluştur sekmesinde gitti dan OutputPath değişti \bin\Production\üzere \bin\Production(silindi sondaki \) ve kaydedilen değişikliklerle. Bu .csproj dosyasında OutputPath öğesinin zorunlu oluşturulması ve proje başarıyla oluşturulmuştur.

Bana bir aksaklık gibi geldi.


7
Bu değişken hatayı iyi yakaladık. Tek bir eğik çizginin bu kadar büyük bir fark yaratacağını asla tahmin edemezdim. İyi Cevap rozetine sahip olun.
ouflak

8
Benim durumumda, bir proje dosyası oluşturmak arasındaki fark any cpuve anycpusorun buydu, ancak gönderiniz bunu görmeme yardımcı oldu.
Joshua Drake

2
Teşekkürler Roman, günümü kurtardın ... keşke cevabını 100 kez yükseltebilseydim! :)
Martin

2
Bununla karşılaştığım VS 2017 v15.6.6, pastırma kaydedildi, teşekkürler!
Angrist

1
@Joshua Drake, bu VSTS kullanırken önemli bir konudur. Çevrimiçi görsel stüdyo 'herhangi bir işlemci' kullanırken, yerel görsel stüdyo 'herhangi bir cpu' kullanır. Komut dosyaları oluşturmak için önemlidir.
FrankyHollywood

27

Çözümünüzde bulunamayan bir derlemeye başvuran bir projeniz varsa bu hatayı VS 2008'de görebilirsiniz. Bu, montaj çözümünüzün parçası olmayan ancak olması gereken başka bir projeden gelirse gerçekleşebilir. Bu durumda çözüme doğru projeyi basitçe eklemek sorunu çözecektir.

Çözümünüzdeki her projenin Referanslar bölümünü kontrol edin. Herhangi birinin yanında kırmızı bir x işareti varsa, o zaman probleminizi bulmuşsunuzdur. Bu montaj referansı çözüm tarafından bulunamıyor.

Hata mesajı biraz kafa karıştırıcı ama bunu birçok kez gördüm.


2
Benim durumumda bu bir "sarı uyarı" idi
AXMIM

26

WiX kullanıyorsanız buna bakın (bir hata var) http://www.cnblogs.com/xixifusigao/archive/2012/03/20/2407651.html

Bazen yeni derleme yapılandırmaları .wixprojdosyanın daha aşağısına eklenir , yani kardeş yapılandırma tanımlarından diğer ilgisiz XML öğeleriyle ayrılır.

Oluşturma yapılandırmalarınızı tanımlayan .wixprojtüm <PropertyGroup>bölümler birbirine bitişik olacak şekilde dosyayı düzenleyin . ( .wixprojVS2013'te düzenlemek için Solution Explorer'da projeye sağ tıklayın, Unload project, tekrar sağ tıklayın -> Edit YourProject.wixproj. Dosyayı düzenledikten sonra yeniden yükleyin.)


1
teşekkürler, bu benim için düzeltti. Projeye daha fazla konfigürasyon ekledikçe çok tuhaf davranışlar yaşadım. Proje dosyasını temizlediğim anda her şey yolunda gitti. (Bu hata ilk olarak 2012'de bildirildi? Harika ...)
Kirschi

Teşekkür ederim, bu benim için de
düzeltti

15

Bu bana oldu çünkü aşağıdaki satırı .csproj dosyasının başlangıcına yaklaştırdım:

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

Configuration | Platformunuzu tanımlayan PropertyGroups'tan sonra yerleştirilmesi gerekir.


11

Görsel stüdyoda proje için gösterilen hata (A diyelim) sorun içermiyor. Her proje için satır satır derleme çıktı penceresine baktığımda, projenin A projesinde montaj olarak anılan başka bir projeden (B) şikayetçi olduğunu gördüm. Proje B çözüme eklendi. Ancak proje A'da farklı konumdan montaj referansı yerine proje referansı olarak bahsedilmemiştir. Bu konum, Platform AnyCpu için derlenen derlemeyi içerir. Daha sonra A projesinden montaj referansını kaldırdım ve B projesini referans olarak ekledim. Derlemeye başladı. Bu düzeltmenin nasıl çalıştığından emin değilim.


15
Deffo bunu \ p: Platform = "Herhangi bir CPU" yerine \ p: Platform = "AnyCPU" ile deneyin. Bu benden çalıştı! Yıllardır buna bakıyordum!
Lee Englestone

AnyCPU (Boşluksuz) da benim için çalıştı. Teşekkürler Lee.
willem

1
TFS 2017'de bir derleme işlemi çalıştırırken, "Çözüm yolu veya paketleri.config" i bir .sln'den .vbproj'a değiştirdikten sonra hatayla karşılaştım. BuildPlatform'u AnyCPU olarak değiştirmek benim için de çalıştı. Burada "Platform" altındaki nota bakın: docs.microsoft.com/en-us/vsts/build-release/tasks/build/…
Bay Zzyzzx

2
Benim durumumda, derlemeyi "any cpu"TFS'den başlatırken, BuildPlatform için varsayılan değerdi. "AnyCPU"Sorunu çözmek için değiştirmek .
XouDo

Bu 2020 - AnyCPU vs AnyCPU hala sorun yaratıyor. VS2019 kullanıyorum ve bunu hala yeni projelerde alıyorum. MS Geliştirici topluluğunu neden cezalandırıyorsunuz?
Hristiyan

9

Aynı hatayla karşılaştım ancak sorunun nedeni, çözümümde başka bir çözümün başvurulan derlemelerinde bulunmayan yeni bir yapılandırma oluşturmuş olmamdı.

Bu, ilgili çözümü açıp yeni yapılandırmayı da buna ekleyerek çözülebilir.

Bu gönderi bana, çözümümdeki tüm projelerin doğru yapılandırmaya sahip olduğunu doğruladıktan sonra başvurulan derlemeleri kontrol etme fikrini verdi:

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


7

Bu sorunu, derleme ardışık düzeninde .sln yerine .csproj oluşturmaya ayarlandıktan sonra Azure DevOps'tan çıktı olarak aldı.

Benim için çözüm: Etkilenen projenin .csproj dosyasını düzenleyin, ardından tüm projenizi kopyalayın

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

Düğüm, yapıştırın ve ardından ilk satırı aşağıdaki gibi değiştirin:

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

Nedeni, benim durumumda hatanın söylediği

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

Azure neden varsayılan "AnyCpu" yerine "herhangi bir cpu" kullanmak istiyor benim için bir muamma ama bu hack işe yarıyor.


Fikrinizi takip ederek, benim durumumda projede değişiklik yapmam gerekmediğini öğrendim, bunun yerine DevOps'taki Visual Studio Build adımımda AnyCpu değeri ile değişken kullanmak için Yapılandırma alanını ayarladım.
donatasj87

@ donatasj87 bu alanın tam değerini gönderebilir misiniz lütfen?
Jay

1
Tam değer tam olarak aynıdır, bu da TFS yapısında çalışmalıdır. Sadece .csproj dosyanızda ayarlanan değerle eşleşmesi gerekir. Bunu bu resimde görebilirsiniz: pasteboard.co/JbdvBT5.png
donatasj87

4

Aynı hatayı aldım, bu yüzden proje ayarlarına baktım ve orada "Build" bölümünde "Build output path" seçeneği var. Ve değer boştu. Bu yüzden "bin \" değerini doldurdum bir hata ortadan kalktı. Sorunumu çözdü.


3

Sahibim:

  1. Sorunlu projeye sağ tıklayın -> Projeyi Kaldır
  2. Projeye sağ tıklayın ve Düzenle * .csproj'u seçin
  3. Yapılandırmayı, belirli bir ad ve hedefleme platformuyla çalışan mevcut yapılandırmadan kopyalayıp yapıştırın ( Sürüm | x64'üm vardı ):

    <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. Projeye sağ tıklayın -> Projeyi Yeniden Yükle
  5. Yeniden oluştur proje / çözüm

3

Bu hatayı yalnızca projenizi komut satırından MSBuild kullanarak derlemeye çalıştığınızda alırsanız (benim durumumda olduğu gibi), çözüm, çıktı yolunu MSBuild'e gibi bir argümanla manuel olarak iletmektir /p:OutputPath=MyFolder.


2

Başka bir çılgın olasılık: Branch \ Main, Main ve Release'i yan yana koymanın basit bir kaynak denetimi düzenlemesini izlerseniz ve bir şekilde Branch \ Main yerine Main'den mevcut bir projeyi eklerseniz (çalışma çözümünüzün Branch \ olduğunu varsayarsak) Ana), bu hatayı görebilirsiniz.

Çözüm basit: doğru projeye başvurun!


2

Bu sorunla bir çözüme proje ekleyip aynı çözümdeki başka bir projeden başvururken karşılaştım - referansın üzerinde sarı uyarı simgesini aldım, yolun boş olduğunu fark ettim.

Çözüm @Amzath'ın önerdiğine benziyordu, projelerim farklı Hedef Çerçeveler ile derleniyordu, örn. .NET 4.0 ve 4.5.


2

Benim durumumda, uygulamamın yerleşik adresi kapatılmış başka bir bilgisayara ayarlandı, bu yüzden onu açtım ve VS'yi yeniden başlattım ve sorun çözüldü.


2

Başka bir neden: X çözümünde A projesinden B projesine bir proje referansı eklersiniz. Ancak, zaten A projesini içeren Y çözümü, siz Y çözümüne B projesini de ekleyene kadar artık bozuktur.


2

Yeni yapılandırmalar ekledikten ve "hata ayıklama" ve "yayın" yapılandırmalarını sildikten sonra da aynı sorunu yaşadım. Benim durumumda, derleme ve yayınlama sürecini çalıştırmak için bir cmd dosyası kullanıyordum, ancak aynı hata atıldı. Benim için çözüm: csproj dosyasında aşağıdakiler:

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

açık bir tane belirtmediysem Yapılandırmayı "Hata Ayıkla" olarak ayarlıyordum. Düğüm değerini "hata ayıklama" dan özel yapılandırmam olarak değiştirdikten sonra, her şey sorunsuz çalıştı. Umarım bu, bunu okuyanlara da yardımcı olur :)


Bu çözüme ilişkin ayrıntılar bu forum gönderisinde belirtilmiştir. social.msdn.microsoft.com/Forums/vstudio/en-US/…
Sunny Tambi

2

Ben de aynı sorunu yaşadım, sadece .wixproj dosyasını düzenleyerek tüm <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ... >öğelerin yan yana olmasını sağlayın .

Bu benim sorunumu çözdü


1

Kullandığım WiX projesi, x64tüm pano için yapılandırma yöneticisinde sabit ayarlandı . Çözüm için Özel Eylem projesi oluştururken, her şeyi varsayılan x86olarak .csprojdosya içinde yaptı . Projeyi yüksüz Yani, tüm değiştirerek düzenleseniz x86için x64kaydedilmiş, yeniden, ve bundan sonra gitmek için iyi oldu.

Bunu neden yapmak zorunda olduğumu anlamıyorum. Yapılandırma yöneticisi x64 olarak inşa edilecek şekilde ayarlandı, ancak csprojdosyada ayarlanamadı :(


0

Burada yayınlanan diğer tüm önerileri denedikten sonra, benim için çözümün aşağıdaki bölümü .csprojdosyadan kaldırmak olduğunu keşfettim :

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

Görünüşe göre, orijinal projeden gelen bu hizmet (yerel makinede mevcut değil), derleme için gerekli olmasa da tüm inşa sürecini durduruyordu.


0

Projeme yeni bir platform ekledikten sonra bu sorunu yaşadım. Benim durumumda .csproj dosyası Perforce kaynak kontrolü altındaydı ve salt okunurdu. Kontrol ettim ama VS, yeniden başlatana kadar değişikliği yakalamadı.


0

Bir Xamarin Projesinde benzer bir sorun yaşadım. Belki nadir görülen bir durumdur, ancak sorunu başkasının yaşaması durumunda. proje yapım aşağıdaki gibiydi

  • xamarin.Android projesi, xamarin.android.library projesinden bir başvuru içeriyordu.
  • Android.library projesinden bir kod kullanarak bir eklenti oluşturdum.
  • Şuan burada bir problem yaşıyoruz. xamarin.android kitaplık projesine proje başvurusu veya nuget yüklemesi eklerseniz. Bu hatayı alacaksınız. Geliştiriciler kodun Android.Library projesinde olduğunu varsayıyorlar ve bu projedeki yeni eklentiye başvurmam gerekiyor. HAYIR!
  • Ana Android projesine bir referans eklemelisiniz. çünkü eklenti-> kitaplık-> ana proje çıktısı üretilmez.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.