2009-07-07 13 views
24

Visual Studio 2008 ile bir C# uygulaması oluştururken, yapılandırma başına farklı bir çıkış dosya adı ayarlamak mümkün mü? VS2008 - Hata ayıklama/serbest bırakma yapılandırmaları için farklı bir dosya adı çıktısı

e.g. 

MyApp_Debug.exe 
MyApp_Release.exe 

Ben geçerli yapılandırmayı ekleyerek dosyayı yeniden adlandırmak için bir post-yapı adım çalıştı, ama bu kavgacı bir yaklaşım gibi görünüyor. Ayrıca, Visual Studio'nun hata ayıklamaya başlamak için F5 tuşuna basarken dosyayı bulamadığı anlamına geliyordu.

+2

Buraya bakın: http://stackoverflow.com/questions/893003/change-assembly-name-based-on-configuration-visual-studio-2005/893238#893238 –

cevap

33

Bunu, proje dosyanızı elle düzenleyerek gerçekleştirebilirsiniz. <AssemblyName> düğümünü bulun ve buna bir koşullu niteliğini ekleyin:

<AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName> 
<AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName> 

Sen yayın sürümü için başka şartlı niteliğini eklemek de bunu çoğaltmak gerekir.

Mümkün olsa da sorunlara neden olabilir. Derlemenize uygulanabilecek AssemblyConfiguration özniteliği vardır. AssemblyInfo.cs yılında koyun:

#if DEBUG 
[assembly: AssemblyConfiguration("Debug")] 
#else 
[assembly: AssemblyConfiguration("Release")] 
#endif 

Bu da uygulamanızın kullanılarak inşa edilmiş yapılandırmayı inşa söyleyecektir derlenmiş derlemesinin bir özellik katacak.

+0

Merak ... Visual Studio zaten değil AssemblyConfiguration eklemek sonra bir yapı mı? – cecilphillip

+0

Bunu yapmak için el ile AssemblyConfiguration satırlarını eklemem zorunda değildim. AssemblyInfo.cs 'kullanır [montaj: AssemblyConfiguration ("")]' Ben ancak AssemblyName doğrudan şart koşma yerine koşullar Mevcut mülk gruba 'AssemblyName' ifadeleri taşımak zorunda etmedi. –

+0

@DeniseSkidmore: Benim asıl cevabını net değil, ancak bu aynı sonucu elde etmek iki alternatif vardır. Şahsen, sadece şifre apporach tercih ederim. – adrianbanks

-1

Ancak, hata ayıklama/yayımlama yapılandırmaları için farklı dosya adlarına sahip olmama rağmen deneyimin her tür soruna neden olabileceğinden kötü bir fikir olduğunu biliyorum (VS'nin yeniden adlandırmayı denediğinde sorunu olduğu gibi adrianbanks belirtildiği gibi uygulama)

basitçe Meclis'te kendi hata ayıklama/release yorumlarında (örneğin nitelikleri olup olmadığını göstermez Neden)

10

, bunu gerçekleştirmek için elle sizin .Csproj dosyasını düzenleyebilirsiniz. Hiç Ancak, bu değişiklik çok büyük olasılıkla kaybolacak bu projenin özellikleri düzenlemek

<AssemblyName>MyApp_$(Configuration).exe</AssemblyName> 

:

Ben, ancak daha basit formu öneriyoruz. Desteklenen bir kurulum olamayacağı için, elinizin üstünde kalması gereken bir şey var.

Proje tanımınızı el ile düzenlemek için, Visual Studio'da projeyi sağ tıklatın ve "Boşalt" ı seçin, sonra boşaltılan projeyi sağ tıklatın ve "Düzenle" yi seçin ve XML tanımını sizin için açacaktır.

+1

Olası çözümlerin hepsinde sorun budur. Visual Studio, proje dosyasını MSBuild'in tüm özelliklerini içerecek şekilde düzenlemenize izin vermez. Yaptığınız herhangi bir değişiklik, Visual Studio'nun dışında yönetilmelidir. En azından bu değişiklikle, Visual Studio'da etkisini görebilirsiniz. – adrianbanks

İlgili konular