Şu anda yalnızca x86 için oluşturduğumuz 2 farklı SKU'nun A ve B'si olan bir VS2012 .NET 4 ürünümüz var. Ayrıca, şu anda 4 yapılandırmaya sahip olacağımız olağan Konfigürasyon Debug
ve Release
var.Aynı anda x86 ve x64 için bir VS2012 çözümü nasıl yapılandırılır
- DebugA
- DebugB
- .csproj birine bakıyor ReleaseA
- ReleaseB
dosyaları o Açıkçası bu
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugA|x86' ">
<OutputPath>..\bin\DebugA\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseA|x86' ">
<OutputPath>..\bin\ReleaseA\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'DebugB|x86' ">
<OutputPath>..\bin\DebugB\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'ReleaseB|x86' ">
<OutputPath>..\bin\ReleaseB\</OutputPath>
</PropertyGroup>
katına çıkacak x64 ekleyerek gibi görünür bu 4 ila 8 farklı kombinasyon, ve VS de istediği zaman AnyCPU platform yapılandırmaları ekliyor gibi görünüyor. Tüm 8'in 30'dan fazla projede doğru bir şekilde yapılandırılmasının VS'de çok fazla tıklama yapılmasını sağlaması ve hata yapmak gerçekten çok kolay.
Birden çok hedefleme sorununun çözüldüğü birkaç başka SO sorusu okudum ve referans yolunda $ {Platform} kullanılarak ilgili farklı platformlar için farklı referansların dahil edilmesinin önerilerinden biri. Benim proje yapılandırma için benzer bir şey yapabileceğini düşündüm, bu yüzden çoklu platform yapmaya çalışırken bu çalıştı:
<PropertyGroup Condition=" '$(Configuration)' == 'DebugA' Or '$(Configuration)' == 'DebugB' ">
<OutputPath>..\bin\${Platform}\${Configuration}\</OutputPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'ReleaseA' Or '$(Configuration)' == 'ReleaseB' ">
<OutputPath>..\bin\${Platform}\${Configuration}\</OutputPath>
</PropertyGroup>
hangisi, teoride, ben sadece iki ile tüm 8 farklı kombinasyonlar için gerekenleri bana vermelidir
blokları. Ancak VS'ye baktığımda, neitehr x86 ya da x64'ü proje için mevcut platformlar olarak göremiyorum. VS gerçekte yapı platformlarını depolamanın tek yolunun onları özellik grupları üzerindeki çılgın koşullar olarak kodlayarak mı göründüğü? Öyle diyelim ki ...
VS ile iyi çalışacak "güzel" görünümlü çoklu platform .csproj yapmanın bir yolu yok mu?
.csprojs dosyasını oluşturabilir ve sonra VS'de düzenleyememeye karar verebilirim, çünkü VS tek tek projelerin özellik pencerelerinde herhangi bir platform gösteremese de, msbuild doğru platformları kullanacak mı?
Düzenleme: queston biraz kafa karıştırıcı gibi görünüyor
: Açık olmak gerekirse, ben, nasıl kurulacağı biliyorum korumak ve projelerin yapılandırmasını Genel görünüme istiyorum ve benim çözümün yapı yapılandırması, çok sayıda proje ve config | platformun sekiz kombinasyonu olduğunda. Bunu elle nasıl yapacağımı biliyorum, ancak fikrimi kaybetmeden veya 200+ özellik sayfasından birinde hata yapmadan.
"Ayarlama, sürdürme ve genel bakış" dan ne istediğinizi ve bugün zorlayıcı bulduğunuz şeyleri netleştirmeniz gerektiğini düşünüyorum. –
Bir yapılandırma (birleşim, platform, proje) özelliklerinin bir yavaş yükleme iletişim sayfasında ayarlanır. Bu genellikle 100+ kombinasyonlu bir matris olduğundan, bu sıkıcı ve hataya yatkındır. Yapılandırmayı etkin bir şekilde tutabilmek için TÜM konfigürasyonları tek bir matriste görmem gerekiyor ya da yapılandırılmış kombinasyonların sayısını sınırlamak için örnekte olduğu gibi değişkenleri kullanmanın bir yoluna ihtiyacım var. –