2011-05-13 18 views
5

Şu anda, aşağıdaki satırı çağırıyorumMachine.config'in 64 bit sürümünü alma

System.Configuration.Configuration cnf = ConfigurationManager.OpenMachineConfiguration(); 

sonuç aşağıdaki cnf.FilePath == C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ machine.config

Aşağıdaki sonucu 32bit 2003 sunucusunda ve 64 bit 2008 R2 sunucusunda alıyorum. İdeal olarak 64 bit bir sunucuya yüklendiğinde 64 bit klasörünü geri almak istiyorum.

aka - C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 Konfig'teki \ \ machine.config

yapıyor ConfigurationFileMaps başvurmadan 64 bit sürümünü almak için bir yolu var mı - gibi Configuration examples from Msdn

yorum için Güncelleştirme

  • Şu anda, platformu ayarı
  • bir standardın System.Configuration.Install.Installer devralan bir sınıfta kod çalıştırıyorum
  • Herhangi Cpu ayarlanır application
  • Kodun bulunduğu bu proje, Visual Studio Installer kurulum projesinde
özel eylem olarak çalıştırılıyor
+1

Proje ayarlarınızda "Platform hedefi" ne ayarlanmış? –

+0

Bilet, cevabınız ile güncellendi - herhangi bir platforma ayarlandı. – Lareau

+2

Bu standart bir uygulama mı yoksa bir web uygulaması mı? Bir web uygulamasıysa, Uygulama Havuzu'nun "32-Bit Uygulamalarını Etkinleştir" ayarı nedir? –

cevap

1

özel bir eylem olarak çalıştırılıyor yer almaktadır Bu proje .Configuration.Install.Installer, bir Görsel yarattı Studio Yükleyici. Yükleyicinin varsayılan olarak 32 bitlik bir işlem olarak çalıştığı görünecektir. Özel Installer eylemi olarak çalıştırdığınız herhangi bir .NET kodu, 32-bit olarak çalıştığından, bu nedenle sadece 32-bit Machine.Config ve 64-bit sürümü görüyorsunuz. Bu MSDN Article, yükleyicinin 64 bit yükleyici olarak nasıl oluşturulacağını açıklar. Bir 32-bit yükleyici, 64-bit öğeleri yükleyebilir, ancak 64-bit bir yükleyici sadece bir 64-bit işletim sistemine kurabilir. Oluşturduğunuz iki yükleyiciye (32 bit ve 64 bit) sahip olmanız ve daha sonra basit tutmak istiyorsanız kullanıcıların uygun sürümü kullanmaları gerekebilir. Yükleyici için TargetPlatform'da değişiklik yaptıktan sonra, TaskManager'da 64-bit bir süreç olarak ortaya çıktı.

+0

özel eylem olarak çalıştırılıyor. Eski sunucular için ihtiyaç duyduğumdan, muhtemelen bir yol dizisi ile çalışmaya başlayacağım (framework64 için çerçeve) ve ConfigurationFileMap'i deneyeceğim. – Lareau