2013-06-25 13 views
14

Visual Studio 2010'da bir C# projem var ve başvurumu belirli bir ortam değişkeniyle yerinde çalıştırmak/hata ayıklamak istiyorum.Visual Studio 2010 C# projesinde hata ayıklama/çalışma ortamı değişkeni ayarla?

Bu muhtemelen bir yerlerde var olan bir özellik olarak beni vurur, ancak bazı kapsamlı arama rağmen bulamıyorum. This question, 2008 ve altındaki ile ilgilidir ve bana yardımcı olan bir yanıt içermez. This question, oluşturma işlemiyle ilgilidir, hata ayıklama/yürütme eylemiyle ilgili değildir.

ben yerde ortam değişkenleri ile benim IDE başlamak olacaktır etrafında-işi bir takdir ediyorum, ama doğrusu IDE bu hakim olurdu. Mümkün mü?

+0

Anladığım kadarıyla: Bir ortam değişkenini IDE'ye yönetmek ve çalışırken uygulamanıza geçmek istiyor musunuz? – michele

+0

@michele Bir hata ayıklama oturumu başlatmak ve başvurum için sunulacak bir ortam değişkeni belirtmek istiyorum. Eclipse'de, bu bir "Çalıştır konfigürasyonu" kullanılarak önemsiz bir şekilde elde edilir. –

+0

Yapılandırma dosyalarını kullanmaya çalıştınız mı? – michele

cevap

5

Bu C++ IDE değil C# IDE mümkündür. Kasten ihmal edildiğini tahmin ediyorum çünkü C# bir programı yapılandırmanın daha iyi yollarını kullanıyor. Ortam değişkenleri, uygulama dağıtıldığında kullanıcının sistem ortamını inceleyen bir yükleyici gerektirdiğinden gariptir. Bu kırılgan, başka bir yükleyici bunu kolayca yok edebilir ve sık sık yaparlar.

C# yolu bir uygulama ayarı kullanmaktır. Proje + Özellikleri, Ayarlar sekmesi.

olası bir alternatif komut satırı bağımsız kullanmaktır. Main() yönteminizde alırsınız, Project + Properties, Debug sekmesinde bir değer belirtirsiniz.

Hala programınızı başlatmak için C++ IDE kullanarak alır bir hile ile istediğini elde edebilirsiniz:

  • çözümünüz için yeni bir proje ekleyin ve Visual C++, General, Makefile proje şablonu seçin.
  • Hemen Son'u tıklatın, sihirbaz çok fazla soru soruyor.
  • Eklenen projeyi sağ tıklatın, Özellikler, NMake düğümünü seçin.
  • "Komut Satırı Oluştur" ayarını düzenleyin ve "echo Bitti" olarak ayarlayın.
  • "Çıktı" ayarını düzenleyin, C# yürütülebilir dosyanızın tam yoluna ayarlayın.
  • Hata ayıklama düğümünü seçin, Hata Ayıklayıcı türünü Yalnızca Yönetilen olarak değiştirin.
  • Ve bunun altında bir, ne istediğinizi, "Çevre" ayarını düzenlemek göreceksiniz.
  • Projeyi tekrar sağ tıklayın, "Başlangıç ​​Projesi Olarak Ayarla" yı seçin.
+4

Ortam değişkenlerini kullanmak, yükleyicilerin kullanıcının sistem ortamını değiştirmesini gerektirmez. Ortam değişkenleri, normalde sistemden devralınan, ancak her zaman değil, işlem başına kapsamlıdır. İşte bu yüzden ProcessStartInfo.EnvironmentVariables' var. Çok işlemli bir uygulamada, komut satırı API'sı değiştirilemediğinde veya kullanılmadığında bir programa başlangıç ​​yapılandırması sağlamanın alternatif bir yoludur. IMO bu ayarı C# debugger için atlamak bir hatadır. – nicholas

+0

Bunun faydalı olduğu diğer bir durum da, programınıza ortam değişkenleri aracılığıyla bilgi ileten üçüncü bir tarafça barındırılacak bir uygulama geliştirdiğiniz zamandır. Ortam değişkenleri canlı ve iyi, ve birçok kullanımları var. Onları ihmal etmek kesin bir hataydı. –

8

Bu ayıklanacak uygulamadan dışından ayarlama kadar net değil, ama (ben NB bir VB programcısı) böyle Main şey ekleyebilirsiniz:

#if (DEBUG) 
    Environment.SetEnvironmentVariable("YourVar", "YourVal"); 
#endif 
2

C# hata ayıklama için Visual Studio 2013 altındaki ortam değişkenleri ile yaptığım şey, Visual Studio'nun altındaki başlangıç ​​menüsünde "VS2013 için Geliştirici Komutu İstemi" ni açıyor. Komut isteminden istediğim ortamı ayarlıyorum ve sonra Studio'yu başlatmak için "devenv.exe" yi çalıştırıyorum. Ardından bir çözüm açın ve hata ayıklamaya başlayın. Ortamınızı değiştirmek isterseniz, hata ayıklamayı durdurmanız, görsel stüdyomdan çıkmanız ve ardından bu açık komut isteminde var olanları değiştirmeniz, ardından yeniden başlatmanız gerektiğini unutmayın. Bir işlem (CMD.EXE) sonraki (DEVENV.EXE) ve sonraki (YourApp) başlattığında bir ortamın ilerlediğini unutmayın. En baştaki değişiklikler ileriye taşınmaz, zinciri başlatmanız gerekir.

+0

Bunu kabul edilen cevaptan daha basit ve etkili bir çözüm olarak buldum (her halükarda) –