Mengapa saya mendapatkan kesalahan Build berikut?
C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ msbuild.exe C: \ Code \ EduBenesysNET \ EduBenesysNET \ EduBenesysNET.vbproj / t: terbitkan / p: Konfigurasi = Rilis / p: Platform = AnyCPU / v: rinci / p: PublishDir = "\\ BSIIS3 \ c $ \ DATA \ WEBSITES \ benesys.net \ benesys.net \ TotalEducationTest \" /p:InstallUrl="https://www.benesys.net/benesys.net/TotalEducationTest/ "/p:ApplicationVersion=1.0.1.198 / p: ProductName =" Total Education TEST "/ p: PublisherName =" BeneSys, Inc. " / p: UpdateRequired = "True" /p:MinimumRequiredVersion=1.0.1.198 Microsoft (R) Build Engine Versi 3.5.30729.1 [Microsoft .NET Framework, Versi 2.0.50727.3603] Hak Cipta (C) Microsoft Corporation 2007. Semua hak dilindungi undang-undang. MSBUILD: kesalahan MSB1008: Hanya satu proyek yang dapat ditentukan. Beralih: Pendidikan Untuk sintaks sakelar, ketik "MSBuild / help"
Saya tidak melihat bagaimana proyek kedua ditentukan.
Apakah itu disimpan dalam file proyek di suatu tempat?
visual-studio
visual-studio-2008
msbuild
Gerhard Weiss
sumber
sumber
Jawaban:
Ternyata garis miring di properti PublishDir keluar dari kutipan akhir. Melarikan diri dari garis miring memecahkan masalah saya.
Dengan cara ini kita dapat menggunakan tanda kutip untuk jalur yang memiliki spasi putih di properti yang MSBuild memerlukan garis miring.
Saya tahu ini adalah postingan lama, tetapi saya merasa perlu membagikan ini dengan seseorang :-)
sumber
SOLUSI
Hapus Kutipan di sekitar / p: pengaturan PublishDir
yaitu
Alih-alih kutipan
Jangan gunakan tanda kutip
Saya minta maaf karena saya tidak memposting temuan saya lebih awal. Saya sebenarnya harus meneliti lagi untuk melihat apa yang perlu diubah. Siapa yang mengira menghapus kutipan akan berhasil? Saya menemukan ini saat melihat rekan kerja membangun untuk solusi lain dan melihat itu tidak memiliki kutipan.
sumber
Di Git Bash saya harus menentukan parameter dengan garis miring ganda seperti:
sumber
Masalah ini muncul saat Anda memiliki jalur atau properti yang berisi spasi dan tidak dikutip.
Semua properti dan jalur Anda memiliki kutipan di sekitarnya, itu aneh. Pesan kesalahan menunjukkan
Education
sebagai sakelar, coba hapus/p:ProductName="Total Education TEST"
untuk melihat apakah itu berfungsi.sumber
MSBuild.exe C:\BuildAgent\work\4c7b8ac8bc7d723e\WebService.sln /p:Configuration=Release /p:OutputPath=bin /p:DeployOnBuild=True /p:DeployTarget=MSDeployPublish /p:MsDeployServiceUrl=https://204.158.674.5/msdeploy.axd /p:username=Admin /p:password=Password#321 /p:AllowUntrustedCertificate=True /p:DeployIisAppPath=Default WebSite/New /p:MSDeployPublishMethod=WMSVC
. Ini memberi saya kesalahanMSBUILD : error MSB1008: Only one project can be specified. Switch: WebSite/New
. Apa masalahnya?Default WebSite/New
Anda perlu meletakkan qoutes di sekitar jalur dan nama file.
Jadi gunakan MSBuild "C: \ Path Name \ File Name.Exe" / [Options]
sumber
Cobalah untuk menghapus garis miring terbalik atau garis miring di akhir jalur publikasi Anda dan instal url
Anda pasti telah mencapai urutan karakter khusus dengan \ "dan (atau) /", tetapi saya tidak cukup tahu tentang cmd.exe untuk mengetahuinya.
Saya pribadi selalu menggunakan Powershell: jauh lebih ramah dan kuat!
Semoga membantu!
sumber
Di vs2012, coba buat definisi Build "Uji Build" menggunakan template TFS default "DefaultTemplate .... xaml" (biasanya salinannya)
Ini akan gagal dengan kesalahan yang menjelaskan sendiri seperti biasa: "MSBUILD: kesalahan MSB1008: Hanya satu proyek yang dapat ditentukan. Beralih: Aktivitas"
Tentu saja di suatu tempat di template TFS default ada beberapa
"
yang hilang sehingga msbuild akan menerima sebagai parameter direktori non escaped yang berisi spasi sehingga akan menghasilkan banyak proyek (?!)Jadi JANGAN PERNAH menggunakan spasi dalam nama TFS Build Definition Anda, cukup menyedihkan dan sederhana pada saat yang bersamaan
sumber
Saya menggunakan tanda kutip tunggal di sekitar parameter kata sandi ketika saya mendapatkan kesalahan
/p:password='my secret'
burukdan mengubahnya menjadi menggunakan tanda kutip ganda untuk menyelesaikan masalah.
/p:password="my secret"
baikHal yang sama mungkin berlaku untuk parameter apa pun yang membutuhkan tanda kutip untuk nilai yang berisi spasi.
sumber
Bagi saya, saya lupa menambahkan kutipan penutup
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)
untuk
/p:DeployOnBuild=true;OutDir="$(build.artifactstagingdirectory)"
sumber
Untuk pembaca selanjutnya.
Saya mendapat kesalahan ini karena file LOG yang saya tentukan memiliki spasi di dalamnya:
SEBELUM:
SETELAH: (yang menyelesaikannya)
sumber
Namun penyebab dan solusi lain untuk ini: Periksa apakah Anda tidak meletakkan spasi di tempat yang salah, misalnya di parameter; milik saya adalah
dotnet -c Release - o /home/some/path
(perhatikan jarak antara-
dano
), saya terus melihat jalan itu sendiri, yang benar dan membuat saya pergi. Semoga membantu! (ini ada di Bash meskipun itu juga harus berlaku untuk Windows)sumber
Ini berhasil untuk saya di TFS MSBuild Argument. Perhatikan jumlah garis miring.
/ p: DefaultPackageOutputDir = "\\ Rdevnet \ Visual Studio Projects \ Insurance \"
sumber
Jika Anda menggunakan ruang kerja default di Jenkins, ini mungkin terjadi. Gunakan lokasi ruang kerja khusus tanpa spasi.
sumber
Jika Anda menggunakan
MSBuild
tugas Azure DevOps , kesalahan mungkin disebabkan oleh bendera konfigurasi ganda. Harap pastikan Anda memasukkan$(BuildConfiguration)
kotak yang ditentukan, bukan MSBuild Arguments:sumber
Jika Anda menggunakan,
Any CPU
Anda mungkin perlu memasukkannya ke dalam tanda kutip tunggal.Tentu saja saat menjalankan Dockerfile, saya harus menggunakan tanda kutip tunggal:
sumber
Seandainya seseorang memiliki masalah yang sama dengan saya, saya melewatkan "/" sebelum salah satu argumen "/ p". Tidak terlalu jelas dari deskripsinya. Saya harap ini membantu seseorang.
sumber
Saya memang menggunakan solusi yang diberikan di https://www.codingdefined.com/2014/10/solved-msbuild-error-msb1008-only-one.html dan itu menyelesaikan masalah. Yang perlu kita lakukan adalah memeriksa spasi dan '' (periksa garis miring terbalik) pada perintah
sumber