Saya memiliki solusi multi proyek dalam Visual Studio 2008. Saya baru saja menambahkan Konfigurasi baru yang disebut Release-VersionIncrement ke solusi, menentukan konfigurasi "gunakan rilis" sebagai dasar. Semua file proyek diperbarui dengan konfigurasi itu. Namun, ketika saya mencoba mengompilasi proyek tertentu menggunakan konfigurasi ini, saya mendapatkan kesalahan berikut:
Kesalahan 5 Properti OutputPath tidak ditetapkan untuk proyek ini. Harap periksa untuk memastikan bahwa Anda telah menentukan kombinasi Konfigurasi / Platform yang valid. Konfigurasi = 'Release-VersionIncrement' Platform = 'AnyCPU' C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.target 539 9 DataConversion
Apa yang sedang terjadi disini? Proyek dikompilasi dengan baik dalam konfigurasi Rilis atau Debug.
sumber
Jawaban:
Biasanya ini terjadi ketika properti OutputPath dari file proyek kosong. File proyek hanyalah MSBuild file . Untuk mengedit dalam Visual Studio: Klik kanan pada proyek, pilih "Unload project" lalu klik kanan pada proyek yang tidak dimuat dan pilih "Edit ...".
Cari grup properti Release-Versionincrement. Seharusnya terlihat seperti ini
<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>
Yang penting di sana itu OutputPath, apakah itu ada untuk file proyek Anda? Jika tidak, tambahkan dan coba lagi.
sumber
Saya juga melihat kesalahan ini ketika agen build kami dikonfigurasi untuk menjalankan platform " Semua CPU " (dengan spasi seperti yang ditampilkan di Visual Studio) daripada " AnyCPU " (satu kata seperti yang ditentukan dalam file proyek).
sumber
msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"
baik-baik saja, namun ketika membangun proyek, saya harus menghilangkan ruang di Any CPU:msbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPU
untuk menekan kesalahan properti Outputpath.Saya memiliki masalah yang sama ketika saya menggunakan MSBuild pertama kali. Solusi saya adalah: gunakan properti OutputPath secara pasti. Seperti ini:
sumber
Dalam kasus kami, kami menjalankan skrip build pada kotak pengembang HP kami. HP memiliki beberapa variabel lingkungan yang telah mereka atur untuk tujuan mereka sendiri dan salah satunya adalah PLATFORM (tampaknya digunakan untuk "HP Easy Setup").
Penghapusan variabel lingkungan PLATFORM berhasil.
Anda juga dapat menguji skrip build Anda di masa mendatang dengan menentukan platformnya, yaitu
msbuild /p:Platform=AnyCPU
.sumber
Jika Visual Studio secara khusus mengeluh bahwa "Platform = 'BPC'" maka Anda dapat dengan mudah memperbaikinya dengan menghapus variabel lingkungan "Platform".
Sekarang restart Visual Studio dan Anda siap melakukannya.
sumber
Seperti yang diisyaratkan oleh " Richard Dingwall ", masalahnya terkait dengan VS menggunakan versi tampilan " Semua CPU ", bukan versi MSBuild yang sebenarnya bertuliskan " AnyCPU "
Masuk ke Build / New Build Definition atau Edit Build Definition -> Proses -> Konfigurasi untuk membangun, buka dialog pemilihan konfigurasi dan di " Platform " alih-alih memilih " Semua CPU ", tambahkan " AnyCPU " secara manual
sumber
Seperti yang telah dikatakan, OutputPath harus disetel DAN harus ditempatkan sebelumnya
<Import Project="$(WixTargetsPath)" />
di file .wixprojsumber
Saya telah menghapus
Platform
variabel lingkungan (apakah BNB atau sesuatu seperti itu). Masalahnya hilang.sumber
Saya menambahkan platform x64 ke solusi saya hari ini, ketika saya mengalami masalah ini.
Dalam kasus saya, kesalahan terbaca:
Saya tahu
OutputPath
seharusnya baik-baik saja, karena ini adalah solusi VS yang sudah ada dan berfungsi. Jadi saya pindah ke petunjuk berikutnya - "kombinasi yang valid dari Konfigurasi dan Platform".Aha! Visual Studio sedang mencoba membangun
Configuration='Debug', Platform='x64'
. Melihat file proyek saya, saya menyadari bahwa x64 tidak terdaftar sebagai salah satu platform yang memungkinkan. Dengan kata lain, saya memiliki entri di bawah ini (dipersingkat):<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>
Perbaiki mudah: cukup tambahkan entri x64!
Saya menyalin / menempel entri x86, dan mengubahnya untuk menggunakan x64. Perhatikan saya juga memodifikasi jalur sehingga ini tidak menimpa build x86:
<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>
sumber
Saya berjuang dengan ini untuk sementara waktu dan kemudian juga membongkar, membangun, dan kemudian memuat ulang proyek yang melanggar dalam solusi, dan kemudian MSBuild berfungsi dengan benar.
sumber
Sebagai Scott S, saya harus menghapus variabel lingkungan "Platform" .
Kemudian restart VS, dan tidak apa-apa: tidak ada lagi pesan kesalahan ...
sumber
Masalahnya berkaitan dengan konfigurasi proyek saya. Berikut skenarionya:
Referensi Solusi A:
Referensi Solusi B (yang saya coba buat):
Solusi saya adalah membuat konfigurasi dengan nama yang sama untuk Solusi A, membangunnya kembali, dan kemudian membangun kembali Solusi B. Ini memperbaiki masalah.
sumber
Saya mendapat pesan kesalahan yang sama. Itu disebabkan oleh referensi ke proyek yang dibongkar dan tidak diperlukan oleh linker (jika tidak maka akan gagal pada waktu kompilasi). Menghapus referensi yang melanggar menyelesaikan masalah.
sumber
Dalam kasus saya (VS2010), saya menghapus string di kotak "OutputPath" yang ada di tab "Build" dan membiarkannya kosong. Kemudian saya membangun kembali solusinya. Build berhasil dan VS telah memasukkan direktori "./" ke dalam "OutputPath". Saya mengganti direktori saat ini "./" dengan path saya ("bin \ x64 \ Release \" - cukup untuk mengatakan bahwa ini adalah path folder yang dikeluhkan VS) dan membangun kembali berhasil lagi.
sumber
Dalam kasus saya, OutputPath ditetapkan sebagai properti dalam file proyek. Tetapi membongkar, memuat ulang, dan kemudian membangun kembali memperbaikinya.
sumber
Ketika saya menambahkan konfigurasi solusi baru dalam solusi saya, saya mendapat pesan kesalahan, "Properti OutputPath tidak disetel untuk proyek X. Harap periksa untuk memastikan bahwa Anda telah menentukan kombinasi yang valid dari Konfigurasi dan Platform untuk proyek ini. Konfigurasi = 'QA 'Platform =' AnyCPU '. Kesalahan ini mungkin juga muncul jika beberapa proyek lain mencoba mengikuti referensi proyek-ke-proyek untuk proyek ini, proyek ini telah dibongkar atau tidak termasuk dalam solusi, dan proyek referensi tidak membangun menggunakan Konfigurasi atau Platform yang sama atau setara. ProjectY ".
Dalam kasus saya, masalah adalah karena bagian yang disorot dari deskripsi kesalahan. Bagian Project X dari solusi saya memiliki referensi proyek ke ProjectY dari solusi lain (cabang berbeda).
Saya telah menyelesaikan masalah ini dengan memodifikasi proyek X untuk menggunakan referensi proyek ke ProjectY dalam solusi saat ini. Semoga ini bisa membantu seseorang yang mengalami masalah serupa.
sumber
Dalam kasus saya, blok XML "PropertyGroup" baru dibuat di bagian bawah dokumen. Saya baru saja menggantinya setelah tag "PropertyGroup" lainnya dan ini menyelesaikan masalah.
sumber
Saya membuat proyek baru dalam solusi baru yang mengacu pada proyek yang sudah ada. Kesalahan ini terjadi ketika saya menambahkan proyek yang ada (katakanlah proyek 1) dan mencoba membangun tanpa menambahkan proyek lain yang referensi proyek 1.
Pastikan saja semua proyek terkait ditambahkan ke solusi baru dan kesalahan menghilang.
sumber
Saya memiliki kesalahan yang sama, jadi saya melihat pengaturan proyek dan di sana di bagian "Build" adalah opsi "Build output path". Dan nilainya kosong. Jadi saya mengisi nilai "bin \" kesalahan menghilang. Itu memecahkan masalah saya.
sumber
Jika Anda memutuskan untuk menetapkan OutputPath sebagai param, dan jalur Anda seperti:
bin\Release\\
maka ingatlah untuk menambahkan\
di akhir seperti itu:/p:OutputPath=bin\Release\\\\
perlu beberapa saat bagi saya untuk menyadari bahwa itulah masalahnyasumber
Saya memiliki masalah yang sama. Saya memperbaikinya dengan membersihkan dan membangun kembali proyek.
sumber
Saya memiliki masalah yang sama, dan satu-satunya solusi yang membantu adalah mengatur Konfigurasi Bangun Secara Manual di setiap Proyek NCrunch.
Buka Jendela NCrunch, di mana Anda dapat melihat Status dari setiap Build dan di mana Anda dapat melihat bahwa build tersebut gagal. Klik kanan pada proyek yang gagal untuk membangun dan klik pada "mengkonfigurasi komponen yang dipilih" di sana Anda melihat di bawah "Pengaturan Bangun" properti "Gunakan konfigurasi pembangunan" setel ke misalnya "Debug" dan properti "Gunakan platform pembangunan" setel ke misalnya "AnyCPU". (Harap dicatat bahwa pengaturan build dan konfigurasi yang Anda tetapkan harus ada di Pengaturan konfigrasi Anda)
Lakukan ini untuk semua proyek Anda, tetapi tidak untuk proyek pengujian Anda. Setelah ini semuanya bekerja dengan baik untuk saya.
sumber
Saya memiliki masalah yang sama, saya memperbaikinya dengan menambahkan Konfigurasi yang hilang ke proyek yang gagal.
Di bawah Kolom Konfigurasi Tambahkan
Catatan: Ini hanya terjadi karena saya memiliki konfigurasi khusus dan proyek yang baru dibuat tidak memiliki konfigurasi.
sumber
Jika ada yang mendapatkan ini di log NCrunch-nya, periksa apakah nilai yang
PropertyGroup
menentukan 'Debug' / 'Rilis' dan 'AnyCPU' / 'x86' terletak sebelum grup properti menggunakan nilai tersebut dalam kondisinya.<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>
Bekerja untuk saya.
sumber
Dalam kasus saya, saya mencoba memindahkan grup properti yang berisi konfigurasi kustom saya di bawah yang standar. Itu menyelesaikannya untuk saya.
sumber
Baru saja melakukan ini dengan VS2015 Professional:
Ini juga merupakan juggling multi-proyek antara debug / rilis dan target yang berbeda. Saya telah mengutak-atik konfigurasi build di beberapa titik dan saya tahu itu dapat mengacaukan VS, jadi saya menariknya kembali dari repo. Masih tidak bagus. OutputPath telah disetel, tidak ada lagi perbedaan dengan kondisi yang diketahui baik sehingga pasti ada yang salah dengan instalasi lokal saya.
Membuka penginstal VS2015 dan mengklik "Perbaiki", dan voila ... kembali normal (setidaknya sejauh ini!)
sumber
Bagi saya itu adalah baris dalam konfigurasi paket NuGet. Singkirkan semua paket yang terkait dalam file proyek Anda dan lihat hidup kembali (simpan hasil edit). Daripada membangunnya lagi bagian demi bagian. Saya membawanya ke baris ini yang harus saya hapus:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
Saya mendapat masalah setelah pembaruan paket NuGet (terutama hal-hal penganalisis FxCop).
sumber