2010-01-27 11 views
24

Bazı C# projelerinde Visual Studio 2005 ile çalışıyorum ve platform hedefini x86'dan Any CPU'ya değiştirmeye çalışıyorum. Zaten bildiğim tüm bağımlılıklardan geçtim ve corflags aracını kullanan herhangi bir CPU için de üretildiklerinden emin oldum.Bir Visual Studio C# projesini x86'dan herhangi bir CPU'ya değiştirme

Visual Studio 2005'teki platform hedefini değiştirdiğimde, bu değişiklik kaydediliyor gibi görünüyor, ancak sonra projeyi oluşturduğumda yine de x86 kullanıyor. Projeyi bir sonraki açışımda platform hedefi x86'ya sıfırlandı.

Bu yalnızca çözümdeki birkaç projede olur, başka bir yerde 32 bit bağımlılık olduğu anlamına mı gelir?

Komut satırında C# derleyicisini /platform:anycpu ile el ile çalıştırabilirim ve bir hata alamıyorum, ancak bunun doğru şey olduğundan emin değilim ve içinde inşa edebilmek istiyorum Görsel stüdyo.

Bu sorunu çözmek için ne yapabilirim?

+2

Tüm yapılandırmalarda platform hedefini değiştirdiğinizden emin misiniz (yani hem Hata Ayıklama, hem de Serbest Bırakma yapılandırmasında)? –

+2

VS'nin bağımlılıkları önemsediğini sanmıyorum. Ben 32-bit bağımlılıkları olan AnyCPU projeleri yapılandırabildim - bu DLL'leri yüklemeye çalıştığında hemen (ve uygun şekilde) çöktü. Divo'nun önerisiyle git. –

+0

Tüm yapılandırmalarda platform hedefini değiştirdim ve hala derleyiciyi/platform: x86 ile çalıştırıyor ve projedeki değişikliği kaydetmiyor. – WildCrustacean

cevap

21

Eğer Yapılandırma Platformu ve Any CPU için Platformu Target hem değiştirdik emin olun. Eğer tüm bunlar başarısız olursa, .csproj'u açabilir ve referansları manuel olarak değiştirebilirsiniz. Projeyi sağ tıklayın, Projeyi Kaldır'a gidin. Sonra sağ tıklayın ve Edit MyProject.csproj'a gidin.

<PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <Platform Condition=" '$(Platform)' == '' ">x86</Platform> 

Ayrıca Çözüm hala Yapılandırma Yöneticisi'nde x86 yapılandırmasını olduğu duruma bakalım: Proje için özellikler hala x86 gibi varsayılan Platformu içerebilir. Yapılandırma Yöneticisinde her şeyi düz bir şekilde almak için çok fazla zaman harcamam gereken farklı yapılandırmalara sahip bazı karmaşık Çözümler için buldum.

+0

Hem Yapılandırma Platformu hem de Platform Hedefini değiştirdim ve yine de değişikliği kaydetmezdim. .csproj dosyasını düzenleyebildim ve bu şekilde yaptım, bu yüzden bu noktada aradığım şeyin bu olduğunu düşünüyorum. Aslında çalışıp çalışmadığı başka bir hikaye. Hala bunun diğer platformlar için hedef alındığını göremediğim bağımlılıklar ile ilgili olabileceğini hissediyorum, ama söylemek zor. – WildCrustacean

+0

Aynı sorunu çözmeye çalışırken bu sorunla karşılaştım ... En sonunda bir proje hata ayıklamak için ayarlanmış olsa bile, hata ayıklama/Herhangi bir CPU için çözüm yapılandırmasında Debug/Any CPU, projenin özellikler sayfası, 'sekmesi,' Debug/Any CPU 'için bir hedef platform seçmenizi sağlar. Benim durumumda, 'Debug/Any CPU' açıkça x86'ı hedef aldı ve ben de Debug/Any CPU için projeyi derlediğimde, ortaya çıkan DLL x86 için açık bir şekilde derlenmişti ve bu da bir x64 ortamında yüklendiğinde Geçersiz Biçim hatalarına neden oldu. Ve çok 'wtf?' Sahip olmak. –

+1

Netleştirmek gerekirse, Configuration Manager ayarları hakkında konuşmuyorum ... yapılandırmayı yanlış tanımlamak için iki yer var. Çözüm yöneticisi projeyi 'Hata Ayıklama/Herhangi Bir CPU' yapılandırması için 'Release/x64' olarak ayarlamanıza izin verir ... proje özellikleri 'build sekmesi' Release/x64 'x86 platformunu hedefler. Şaşkın mı? –

-6

Yönetilen bir proje için bunu yapamazsınız ve bu ayarın gerçekten cpu üzerinde çalışması gerektiğinden yönetilen projelerle alakasız olduğunu düşünüyorum.

+0

"Yönetilen proje" ile ne demek istiyorsun? Anladığım kadarıyla, derlemelerimi yapı özelliklerinde platform hedef ayarını değiştirerek x86, x64 veya anycpu olarak oluşturabilmeliyim. – WildCrustacean

+6

-1, Yönetilmeyen DLL'leri kullanıyorsa bu ayar Yönetilen Projelerle ilgilidir. – user7116

+0

Ben x86 veya x64 düşünmedim Sadece saf yönetilen kod olduğunu düşündüm – gyurisc

İlgili konular