Hentikan Visual Studio dari meluncurkan jendela browser baru ketika memulai debug?

340

Saya sudah membuka jendela dengan situs web yang sedang saya debug. Saya tidak perlu VS untuk meluncurkan yang lain untuk saya setiap kali saya perlu men-debug.

Apakah ada cara untuk menghentikan perilaku ini?

pemain ski
sumber
Apakah Anda memiliki penjelajahan tab aktif? Dan apakah Anda menggunakan IE?
Quintin Robinson

Jawaban:

415

Buka properti proyek startup Anda ( Project → {ProjectName} Properties ... dari menu utama atau klik kanan proyek Anda di Solution Explorer dan pilih Properties ), lalu navigasikan ke tab Web dan di bawah Start Action pilih Jangan membuka halaman . Tunggu permintaan dari aplikasi eksternal .

Anda masih dapat menggunakan browser apa pun (atau Fiddler, apa pun) untuk mengakses aplikasi yang sedang berjalan, tetapi itu tidak akan membuka jendela browser secara otomatis, itu hanya akan mulai di latar belakang dan menunggu permintaan.

Pawel Krakowiak
sumber
Itu sepertinya solusi yang sangat bagus, tetapi seperti halnya Slace, ini tidak menghentikan eksekusi pada breakpoints, ia mengatakan tidak ada simbol yang dimuat. Terimakasih Meskipun.
pemain ski
9
Itu benar. Saya menggunakannya untuk debugging sepanjang waktu. Anda harus memiliki konfigurasi yang salah. Periksa kembali apakah Anda telah mengaktifkan debug pada web.config dan bahwa Anda menjalankan Debug build.
Pawel Krakowiak
1
@ mjohnsonengr Saya bersumpah ini adalah pengaturan per pengguna yang lokal ... Mungkin Anda memiliki file .csproj.user check-in (Anda tidak boleh).
Pawel Krakowiak
1
Jadi itu [pengaturan lokal]. Saya sebelumnya berasumsi bahwa semua pengaturan proyek di daerah itu disimpan dalam tim csproj. Saya sebelumnya telah mencoba mengubah URL yang akan dibuka oleh browser dengan memodifikasi "Project URL" dan melihat bahwa URL itu diubah dalam .csproj. Setelah diperiksa lebih dekat, saya sekarang melihat bahwa ada tanda centang "Terapkan pengaturan server untuk semua pengguna" yang mengontrol bidang itu saja. Salahku.
mjohnsonengr
4
Untuk Visual Studio di Mac, pengaturan yang sebanding berada di bawah "Project> Options> Run> Default> ASP.NET Core". Hapus centang "Buka URL di browser web saat aplikasi dimulai".
IronRod
134

Untuk VS 15.7.1 ToolsOptionsProjects and SolutionsWeb Projects→ hapus centang Stop debugger when browser window is closed.

Memebot
sumber
6
VS 15 adalah Visual Studio 2017 , BTW.
Uwe Keim
3
Ini juga berfungsi VS 2019 Pratinjau 4.3
KnuturO
2
Perubahan yang disarankan jangan lakukan apa pertanyaannya.
Anatolyevich
1
Bekerja dengan baik di VS2019 (16.4.4)
Rory McCrossan
75

Jawaban yang diperbarui untuk proyek .NET Core Web Api ...

Klik kanan pada proyek Anda, pilih "Properties," pergi ke "Debug" dan hapus centang pada kotak "Luncurkan browser" (diaktifkan secara default).

masukkan deskripsi gambar di sini

Greg R Taylor
sumber
1
@ Grey Di mana ada opsi "Luncurkan Browser"?
Ayush Singhania
Saya telah memperbarui jawabannya: Anda harus pergi ke properti proyek Anda untuk mendapatkan opsi.
CennoxX
44

Dalam proyek ASP.Net 5 ini sekarang dapat diatur untuk setiap profil peluncuran.

Buka file launchsettings.json di bawah folder Startup Project Properties dan tambahkan "launchBrowser": falseke profil yang Anda konfigurasikan, seperti di:

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
Joao Costa
sumber
13

Solusi ini bekerja untuk saya untuk VS 2019

Alat => Opsi

Kemudian ketik Projects and solutionsdi kotak pencarian.

Pilih menu Web Projects.

Kemudian batalkan pilihan di bawah ini.

Hentikan debugger ketika jendela browser ditutup, tutup browser saat debugging berhenti.

Ini bekerja untuk saya. Semoga ini bisa membantu.

hackerbuddy
sumber
1
Terima kasih atas tip ini.
Menangkan Man
Masih membuka tab baru setiap kali saya mulai debugging.
meniru
12

Anda dapat menggunakan fungsi Lampirkan Ke Proses, daripada menekan F5.

Ini juga memungkinkan Anda menavigasi bagian kerja yang dikenal tanpa memperlambat VS debugger yang dimuat di bawahnya.

Aaron Powell
sumber
Saya sudah mencobanya, tetapi itu tidak akan menghentikan eksekusi ketika menemukan breakpoint. Saya perlu berhenti di breakpoints, apakah ada cara untuk mengaktifkannya? Terima kasih.
pemain ski
1
asalkan Anda terlampir pada proses yang telah memuat majelis yang sama persis yang ada di folder / bin / aplikasi semua breakpoints akan bekerja (oh, dan asalkan ada file .pdb!)
Aaron Powell
Saya mencari Google tentang cara memperbaikinya tetapi sepertinya banyak masalah. Saya tidak bisa membuatnya bekerja. Sementara itu saya akan menggunakan solusi I Have the Hat. Terima kasih.
pemain ski
Saya dapat men-debug dengan menekan F5 dengan opsi "tunggu permintaan dari aplikasi eksternal", tapi saya tidak bisa mendapatkan Lampirkan Proses untuk bekerja (melampirkan ke INetMgr.exe). Tidak pernah berhenti di breakpoint. Saya menggunakan VSCommands di VS 2013, tetapi versi 2015 baru dari VSCommands belum mendukung "Lampirkan ke IIS". Seandainya saya tahu apa masalahnya.
ErikE
12

Saya telah memecahkan masalah saya dengan mengikuti langkah-langkah di bawah ini. Pergi ke Alat >> Klik pada opsi >> klik pada proyek dan solusi >> proyek web >> hapus centang "Hentikan debugging ketika browser ditutup" pilihanmasukkan deskripsi gambar di sini

DKR
sumber
Solusi terbaik, membantu untuk proyek inti bersih saya
V319
jawaban yang diremehkan
Bimal Das
9

Ketika Anda pertama kali membuka proyek web / aplikasi, lakukan a Ctrl- F5, yang merupakan jalan pintas untuk memulai aplikasi tanpa debugging. Kemudian ketika Anda kemudian menekan F5dan meluncurkan debugger, itu akan menggunakan instance IE itu. Kemudian berhenti dan mulai debugging di Visual Studio alih-alih menutup IE.

Ini bekerja pada mesin saya. Saya menggunakan server web dev yang sudah terpasang. Tidak tahu apakah itu membuat perbedaan.

Firefox juga akan tetap terbuka sehingga Anda dapat men-debug di salah satu atau keduanya sekaligus.

Rex Miller
sumber
Hei itu berhasil! Terima kasih banyak. Sekarang saya dapat menghindari sekitar 100 jendela ekstra per sesi pengkodean. Juga, ketika saya menekan F5 VS mengubah ukuran jendela IE saya. Apakah Anda tahu bagaimana saya bisa menghindarinya?
pemain ski
Maaf sker, saya tidak tahu jawabannya - itu tidak terjadi pada saya melakukan hal di atas, jadi mungkin ada jawaban di suatu tempat. Mungkin IE mengingat ukuran jendelanya dan tidak terkait dengan skenario debugging?
Rex Miller
7

Tampaknya ada satu kasus di mana tidak ada di atas tetapi yang berikut ini membantu. Saya sedang mengembangkan proyek untuk platform cloud Windows Azure dan saya memiliki peran web. Memang ada tombol radio Jangan buka halaman di Project -> properti {Nama proyek} ... seperti yang ditunjukkan oleh Pawel Krakowiak, tetapi tidak berpengaruh dalam kasus saya sama sekali. Namun, ada proyek cloud utama dalam solusi explorer dan ada folder Peran di bawahnya. Jika saya mengklik kanan peran web saya di folder ini dan memilih Properti , saya mendapatkan set pengaturan lain dan pada tab Konfigurasi ada browser Peluncuran untuk bendera, setelah menghapus centang itu jendela browser baru tidak dibuka pada aplikasi start up.

stepan
sumber
6

Karena saya tidak memiliki opsi yang disebutkan di VS saya yaitu Visual Studio Enterprise 2017, saya harus mencari beberapa opsi lain.

Ini dia yang saya temukan:

Pergi ke Alat -> Opsi -> Tab debug (Umum) dan hapus centang "Aktifkan debugging JavaScript untuk Asp.Net (Chrome dan IE).

masukkan deskripsi gambar di sini

Alexa Adrian
sumber
Masih berlaku untuk 2019, terima kasih.
Emanuel
5

Joao Costa menjawab juga berlaku untuk proyek .Net inti 2.

launchsettings.json -> "launchBrowser": false

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": false,
      "environmentVariables": {
        "Hosting:Environment": "Development"
      }
    }
}
chri3g91
sumber
1
Ini sangat membantu. Perlu dicatat bahwa launchSettings.json ini disembunyikan di bawah Properties "Folder" di "Solution Explorer"
netpoetica
2

Saya mencari jawaban dan tidak melihat solusi yang saya temukan disebutkan. Jika ya, permintaan maaf saya. Dalam kasus saya, saat ini menggunakan Visual Studio 2015. Dalam solusi explorer, klik kanan pada file Project dan klik properties. Buka tab Debug dan ini harus memiliki info untuk bagaimana Anda meluncurkan "IIS Express atau Web (DNX)" untuk dua drop down pertama, dan kemudian harus ada kotak centang untuk "URL Peluncuran:". Hapus centang opsi ini dan browser Anda tidak akan diluncurkan secara otomatis setiap kali Anda pergi untuk debug aplikasi Anda. Semoga ini bisa membantu seseorang.

Cody Gaut
sumber
2

Walaupun ada beberapa jawaban bagus, mulai dari tersangka biasa hingga solusi yang lebih baru , saya ingin memberikan satu lagi ke keributan yang membahas apa yang harus Anda lakukan ketika Anda mengerjakan solusi dengan beberapa proyek .

Sebelum saya tiba di solusi ini, saya terus mencari di bindingInformationapplicationhost.config dari solusi, tanpa lelah mencari petunjuk mengapa semuanya tidak berfungsi.

Ternyata, hal sederhana yang saya abaikan adalah bahwa proyek yang berbeda memiliki pengaturan tersendiri juga.

Jadi, selain Project > {Project-Name} Properties... > Web > Start Actiondi Proyek Backend saya, saya juga harus pergi ke Website > Start Options... > Start ActionProyek Frontend saya. Sesampai di sana, saya memilih Don't open a page. Wait for a request from an external applicationdan bahagia sejak saat itu!

Pengaturan Backend Pengaturan Frontend

Siddhant Rimal
sumber
2

Anda dapat mengklik kanan pada proyek Anda, lalu memilih Properties, pada Debugtab Anda harus menghapus launch browsercentang pada kotak centang.

Siavash
sumber
0

Anda sekarang juga bisa masuk ke properti Web dengan mengklik panah dropdown di sebelah tombol Run!

  1. Klik tombol dropdown di sebelah "Run"
  2. {Nama proyek} Properti
  3. Klik "Web" di daftar di sebelah kiri
  4. Di bawah segmen "Mulai Tindakan", klik Jangan buka halaman.

Anda sudah siap!

PS: Ini bekerja untuk saya, saya pada versi 16.5.5 dari VS Professional 2019 :)

Lukas Klein Haneveld
sumber