"Çıktı yolu özelliği bu proje için ayarlanmadı" hatası


90

Visual Studio 2008'de çok projeli bir çözümüm var. Çözüme yeni bir Configuration-VersionIncrement adında yeni bir Configuration ekledim ve "release use" konfigürasyonunu temel olarak belirttim. Tüm proje dosyaları bu konfigürasyonla güncellendi. Ancak, bu yapılandırmayı kullanarak belirli bir projeyi derlemeye çalıştığımda aşağıdaki hatayı alıyorum:

Hata 5 OutputPath özelliği bu proje için ayarlanmamış. Lütfen geçerli bir Yapılandırma / Platform kombinasyonu belirttiğinizden emin olun. Configuration = 'Release-VersionIncrement' Platform = 'AnyCPU' C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 DataConversion

Burada neler oluyor? Proje, Release veya Debug konfigürasyonunda iyi derler.


6
TFS yapı tanımındaki açılır listenin "AnyCPU" yerine "Herhangi bir CPU" olduğunu fark edene kadar bununla saatlerce uğraştım !!!!
Kek Adam

1
VS2012'de, derleme yapılandırmasındaki açılır menü "Herhangi bir CPU" dur, ancak .csproj dosyasının içinde "AnyCPU" olduğundan, Jenkins veya komut satırında "AnyCPU" işlevini kullanın.
Jirong Hu

Yanıtlar:


94

Bu genellikle proje dosyasının OutputPath özelliği boş olduğunda gerçekleşir. Proje dosyaları yalnızca MSBuild dosyalarıdır. Visual Studio'da düzenlemek için: Projeye sağ tıklayın, "Projeyi Kaldır" ı seçin, ardından kaldırılan projeye sağ tıklayın ve "Düzenle ..." yi seçin.

Release-Versionincrement özellik grubunu arayın. Bir şeye benzemeli

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
  <OutputPath>bin\Release-VersionIncrement\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <Optimize>true</Optimize>
  <DebugType>pdbonly</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
</PropertyGroup>

Orada önemli olan, OutputPath, proje dosyanız için var mı? Eklemezseniz tekrar deneyin.


33
Çıktı yolu doğruysa ve hala bu hatayı alıyorsanız, derlemelere veya artık var olmayan diğer projelere referanslarınız olabilir. Eski referansları temizleyin. Bu benim deneyimimdi.
John K

3
Sadece bu hatayla karşılaştım ve proje dosyasını doğrudan değiştirmek zorunda kaldım. Proje özellikleri sayfasında "Herhangi bir CPU" yazmasına rağmen, özellik başlangıçta boş olarak ayarlandı ve ortam değişkenlerimden bir Platform = BPC ayarı aldım. Bunu düzelttikten ve özellikler sayfasını Herhangi bir CPU'dan x86'ya ayarladıktan / sıfırladıktan sonra, platformun artık 'x86' (?!?) Olduğunu iddia ederek hala oluşturulamıyordu. Elbette, buradaki adımları izledim ve şimdi x86 olarak ayarlandığını gördüm, bu yüzden manuel olarak düzenledim ve şimdi herkes tekrar mutlu. Teşekkürler beyler!
DaveN59

2
Proje dosyam, boş olmayan bir OutputPath ile beklenen PropertyGroup'a sahipti ve bu hatayı alıyordum. Fark ettiğim tek şey, bu özel konfigürasyon için PropertyGroup'un dosyadaki kök düğümün altındaki ilk öğe olması ve diğer tüm konfigürasyon Koşullarından farklı olarak, Koşul niteliğinin ön ve arka boşluğa sahip olmamasıydı. Bu noktada, bu öğeyi diğer bazı konfigürasyonların altına taşıdım (neden önemli olduğundan emin değilim, sadece bir şeyler deniyordu) ve koşuldaki boşlukları ekledim. Bundan sonra çalıştı. Hangisinin fark yarattığından emin değilim.
Seth Flowers

2
Başka bir sorunum vardı. Windows projem için yapılandırma dönüşümlerimi oluşturmak için SlowCheetah kullandım. Yapılandırmalarda @sethflowers'ın önerdiği gibi boşluk yoktu. Bunları ekledim ama bu yardımcı olmadı. Yapılandırmalar arasında başka bir özellik grubu olduğunu gördüm. Böylece çözüldü (özellik grubunu proje yapılandırma özellik gruplarının altına yerleştirdi) ve sonra sorun ortadan kalktı. Buradaki tüm öneriler için teşekkürler. Bana zaman kazandırdı !!!
LockTar

7
Deffo bunu \ p: Platform = "Herhangi bir CPU" yerine \ p: Platform = "AnyCPU" ile deneyin. Bu benden çalıştı! Buna asırlardır bakıyordum!
Lee Englestone

78

Bu hatayı, derleme aracımız " AnyCPU " (proje dosyasında belirtildiği gibi bir kelime ) yerine " Herhangi bir CPU " platformunu (Visual Studio'da gösterilen boşluklarla) çalıştıracak şekilde yapılandırıldığında da gördüm .


5
Aynı problemle karşılaştım, öyle görünüyor ki çözüm düzeyinde "Herhangi bir CPU" geçerli, ancak proje düzeyinde "AnyCPU". Başka bir deyişle, msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"iyiydi, ancak projeyi oluştururken, msbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPUOutputpath özellik hatasını bastırmak için Any CPU'daki alanı atlamak zorunda kaldım .
Emil G

2
İnanılmaz ve CI yapılandırması için ne PITA. Günlerdir bununla mücadele ediyorum.
Jeremy Holovacs

Bu hatayı ana derleme sunucusunu geliştiremediğimde ve seçtiğim alternatif "AnyCPU" yerine "Herhangi bir CPU" geçti. Kontrol ettikten sonra MSBUILD ve diğer yazılımların sürüm numaralarında bazı farklılıklar vardı. Cevabınız için teşekkürler,
Gilles

1
Alanın suçlu olduğuna inanamıyorum!
Alexandra

36

MSBuild'i ilk kullandığımda da aynı sorunu yaşadım. Benim çözümüm şudur: OutputPath özelliğini kesinlikle kullanın. Bunun gibi:

msbuild XXX.csproj /p:OutputPath=bin\Debug.

Bu, TeamCity Azure Bulut Hizmeti derlemesi için sorunumu çözdü. +1
starmandeluxe

VSO'nun CI Build ile benim için de aynı şekilde.
StriplingWarrior

11

Bizim durumumuzda, HP geliştirici kutularımızda bir derleme komut dosyası çalıştırıyorduk. HP'nin kendi amaçları için oluşturduğu bazı ortam değişkenleri vardır ve bunlardan biri PLATFORM'dur (görünüşe göre "HP Easy Setup" için kullanılıyor).

PLATFORM ortam değişkenini silmek işe yaradı.

Ayrıca platformu, yani
msbuild /p:Platform=AnyCPU.


Bu beni yeni HP dizüstü bilgisayarımda yakaladı - teşekkürler @Boggin - bu benim başıma gelmezdi.
Rob Cooper

9

Visual Studio özellikle "Platform = 'BPC" "den şikayet ediyorsa," Platform "ortam değişkenini kaldırarak bunu kolayca düzeltebilirsiniz.

Bu kötü çocuğu silin.

Şimdi Visual Studio'yu yeniden başlatın ve hazırsınız.


6

" Richard Dingwall " un ima ettiği gibi, sorun VS ile ilgili olarak " AnyCPU " yazan MSBuild sürümü yerine " Any CPU " nun ekran sürümünü kullanıyor.

Derlemek için Oluştur / Yeni Yapı Tanımına veya Yapı Tanımını Düzenle -> İşlem -> Yapılandırmalara gidin, yapılandırma seçimi iletişim kutusunu açın ve " Herhangi bir CPU " yu seçmek yerine " Platform " a manuel olarak " AnyCPU " ekleyin


6

Söylendiği gibi, OutputPath ayarlanmalıdır VE bunun yerleştirilmesi gerekir önce <Import Project="$(WixTargetsPath)" /> .wixproj dosyada


Bu sorunumla ilgiliydi, bir wix projesini oluşturduktan sonra yeni bir konfigürasyon ekledim ve yeni konfigürasyon dosyanın sonuna eklendi, böylece bu yeni konfigürasyonla ilgili tüm Mülk Grupları bu içe aktarmadan SONRA yerleştirildi ve üst, diğerlerinin hemen yanında, benim için çalışmasını sağladı.
Eugenio Miró

4

PlatformOrtam değişkenini kaldırdım (BNB ya da bunun gibi). Sorun ortadan kalktı.


1
Ne yazık ki Platform ortam değişkenini kaldırdıktan sonra bile tam bir yeniden başlatma gerektiriyor!
79E09796

4

Bugün bu sorunla karşılaştığımda x64 platformunu çözümüme ekliyordum.

Benim durumumda, hata şu şekildedir:

Varsayılan hedefler için $ / ProjectDirectory / ProjectName.csproj oluşturuldu. c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (484): OutputPath özelliği ProjectName.csproj 'projesi için ayarlanmadı. Lütfen bu proje için geçerli bir Yapılandırma ve Platform kombinasyonu belirttiğinizden emin olun. Yapılandırma = 'Hata Ayıklama' Platform = 'x64'. Çözüm dosyası olmadan bir proje oluşturmaya çalıştığınız ve bu proje için mevcut olmayan varsayılan olmayan bir Yapılandırma veya Platform belirttiğiniz için bu mesajı görüyor olabilirsiniz.

OutputPathBu mevcut, çalışan bir VS çözümü olduğundan iyi olması gerektiğini biliyordum . Bu yüzden bir sonraki ipucuna geçtim - "Yapılandırma ve Platformun geçerli bir kombinasyonu".

Aha! Visual Studio oluşturmaya çalışıyor Configuration='Debug', Platform='x64'. Proje dosyama baktığımda x64'ün olası platformlardan biri olarak listelenmediğini fark ettim. Başka bir deyişle, aşağıdaki girişlere sahiptim (kısaltılmış):

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Debug\</OutputPath>  
      . . .  
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Release\</OutputPath>    
      . . .
  </PropertyGroup>

O zaman kolay düzeltme: x64 girişleri eklemeniz yeterli!

X86 girişlerini kopyaladım / yapıştırdım ve x64 kullanacak şekilde değiştirdim. Ayrıca, yolları x86 yapılarının üzerine yazmamaları için değiştirdim:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Debug\</OutputPath>    
      . . .
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Release\</OutputPath>    
      . . .
  </PropertyGroup>

3

Bir süre bununla uğraştım ve sonra da çözümdeki sorunlu projeyi kaldırdım, inşa ettim ve ardından yeniden yükledim ve ardından MSBuild doğru şekilde çalıştı.


3

Scott S olarak "Platform" ortam değişkenini silmem gerekti .

Ardından VS'yi yeniden başlatın ve sorun yok: artık hata mesajı yok ...


Bu, Build vNext MSBuild adımımda belirttiğim platformu sildiğimde de işe yaradı.
4imble

2

Sorun proje yapılandırmamla ilgiliydi. İşte senaryo:

Çözüm A referansları:

Proje X referansları Proje Y
Proje Y

Çözüm B (oluşturmaya çalıştığım çözüm) referansları:

Proje X Proje Z

Çözümüm, Çözüm A için aynı adı taşıyan bir yapılandırma oluşturmak, onu yeniden oluşturmak ve ardından Çözüm B'yi yeniden oluşturmaktı.


1
Aynı hatayla karşılaşıyordum ve bu geçici çözüm benim için işe yarayan tek şeydi. Temel olarak, "Herhangi bir CPU" platform yapılandırması ile bir silverlight projesi oluşturan "Win32" çözüm platformu yapılandırmasına ve ayrıca silverlight projesini barındıran "x86" platform yapılandırmasına sahip bir web uygulama projesine sahiptim. Msbuild'in beklendiği gibi çalışması için silverlight projesine "x86" (ve eskisini varsayılan yapılandırma olarak tut) yeni bir proje platformu yapılandırması eklemem gerekiyordu.
Rami A.

2

Aynı hata mesajını aldım. Bunun nedeni, kaldırılan ve bağlayıcı tarafından gerekli olmayan bir projeye referans olmasıydı (aksi takdirde derleme zamanında başarısız olurdu). Sorunlu referansı kaldırmak sorunu çözdü.


2

Benim durumumda (VS2010) "Build" sekmesindeki "OutputPath" kutusundaki dizeyi kaldırdım ve boş bıraktım. Sonra çözümü yeniden inşa ettim. Derleme başarılı oldu ve VS, geçerli "./" dizinini "OutputPath" içine ekledi. Şu anki "./" dizinini kendi yolumla değiştirdim ("bin \ x64 \ Release \" - bunun, VS'nin ilk başta şikayet ettiği tam klasör yolu olduğunu söylemek yeterli) ve yeniden oluşturma başarılı oldu.


1

Benim durumumda OutputPath proje dosyalarında ayarlıydı. Ancak boşaltma, yeniden yükleme ve yeniden inşa etme sorunu çözdü.


1

Çözümüme yeni çözüm yapılandırması eklediğimde, "OutputPath özelliği X projesi için ayarlanmadı. Lütfen bu proje için geçerli bir Yapılandırma ve Platform kombinasyonu belirttiğinizden emin olun. Yapılandırma = 'QA 'Platform =' AnyCPU '. Bu hata, başka bir proje bu projeye bir projeden projeye referansı takip etmeye çalışıyorsa, bu proje kaldırılmışsa veya çözüme dahil edilmemişse ve referans proje aynı veya eşdeğer bir Yapılandırma veya Platform kullanarak oluşturun. ProjectY ".

Benim durumumda sorun, hata açıklamasının vurgulanan kısmından kaynaklanıyordu. Çözümümün Proje X kısmı, başka bir çözümün (farklı dal) ProjectY'ye bir proje referansına sahipti.

Mevcut çözümde ProjectY'ye proje referansını kullanmak için X projesini değiştirerek bu sorunu çözdüm. Umarım bu, benzer sorunu olan birine yardımcı olur.


0

Benim durumumda, yeni "PropertyGroup" XML bloğu belgenin altında oluşturuldu. Onu diğer "PropertyGroup" etiketlerinden sonra değiştirdim ve bu sorunu çözdü.


0

Mevcut projelere referans veren yeni bir çözümde yeni bir proje oluşturdum. Bu hata, mevcut bir proje eklediğimde (örneğin proje 1) ve 1 referansını yansıtan diğer projeleri eklemeden oluşturmaya çalıştığımda ortaya çıkıyor.

Sadece ilgili tüm projelerin yeni çözüme eklendiğinden ve hatanın ortadan kalktığından emin olun.


0

Aynı hatayı aldım, bu yüzden proje ayarlarına baktım ve "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ü.


0

OutputPath'i bir parametre olarak ayarlamaya karar verirseniz ve yolunuz şöyle ise: bin\Release\\o zaman \sonuna şöyle eklemeyi unutmayın : /p:OutputPath=bin\Release\\\\durumun böyle olduğunu anlamam biraz zaman aldı



0

Aynı sorunu yaşadım ve yardımcı olan tek çözüm, her NCrunch Projesinde Yapılandırmayı Manuel Olarak Ayarlamaktı.

Her Derlemenin Durumunu görebileceğiniz ve derlemenin başarısız olduğunu görebileceğiniz NCrunch Penceresini açın. Oluşturulamayan projeye sağ tıklayın ve "Seçilen bileşeni yapılandır" seçeneğine tıklayın, burada "Yapı Ayarları" altında "Yapı yapılandırmasını kullan" özelliğini, örneğin "Hata Ayıkla" olarak ve "Derleme platformunu kullan" özelliğini ayarlayın ör. "AnyCPU". (Lütfen belirlediğiniz yapı ve yapılandırma ayarlarının yapılandırma ayarlarınızda bulunması gerektiğini unutmayın)

Bunu tüm projeleriniz için yapın, ancak test projeniz için değil. Bundan sonra her şey benim için iyi çalışıyor.


0

Aynı sorunu yaşadım, başarısız olan projeye eksik Yapılandırmaları ekleyerek düzelttim.

YAPI -> Yapılandırma Yöneticisi ->

Yapılandırma Sütunu Ekle Altında

Not: Bunun nedeni yalnızca benim özel yapılandırmam olması ve yeni oluşturulan projelerin yapılandırmaya sahip olmamasıydı.


0

Herhangi biri bunu NCrunch günlüklerinde alıyorsa, PropertyGroup"Debug" / "Release" ve "AnyCPU" / "x86" değerlerinin, koşullarında bu değerleri kullanan özellik gruplarından önce yer alıp almadığını kontrol edin .

<PropertyGroup>
    <!-- this one first -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <XXX>...</XXX>
  </PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <XXX>...</XXX>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <XXX>...</XXX>
</PropertyGroup>

Benim için çalıştı.


0

Benim durumumda, özel yapılandırmamı içeren mülk grubunu standart olanların altına taşımaya çalıştım. Benim için çözdü.


0

Bunu VS2015 Professional ile aldım:

OutputPath özelliği 'xxxxx.csproj' projesi için ayarlanmadı. Lütfen bu proje için geçerli bir Yapılandırma ve Platform kombinasyonu belirttiğinizden emin olun.

Bu aynı zamanda hata ayıklama / yayınlama ve farklı hedefler arasında çok projeli hokkabazlıktır. Bir noktada derleme yapılandırmalarıyla uğraşıyordum ve bunun VS'yi karıştırabileceğini biliyorum, bu yüzden onları depodan geri çektim. Hâlâ iyi değil. OutputPath ayarlandı, artık bilinen iyi bir duruma sahip herhangi bir fark yoktu, bu yüzden yerel kurulumumda kesinlikle bir sorun vardı.

VS2015 yükleyici açıldı ve "Onar" düğmesine tıklandı ve işte ... normale dön (en azından şimdiye kadar!)


0

Benim için NuGet paketi yapılandırmasında bir satırdı. Proje dosyanızla ilgili her şeyden kurtulun ve hayata geri dönün (düzenlemeleri kaydedin). Daha sonra parça parça yeniden inşa edin. Kaldırmam gereken bu satıra getirdim:

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

NuGet paketlerinin güncellemesinden sonra sorunu yaşadım (esas olarak FxCop analiz edici şeyler).

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.