जैसा कि जॉन स्कीट ने लिखा था, समाधान स्तर पर लक्ष्य ढांचे को परिभाषित करने का कोई स्पष्ट तरीका नहीं है। हालांकि, यह समाधान के लिए विशिष्ट कॉन्फ़िगरेशन जोड़कर, *.csproj
फ़ाइलों को मैन्युअल रूप से संपूर्ण प्रोजेक्ट के लिए वैश्विक रूप से प्रत्येक कॉन्फ़िगरेशन के लिए लक्ष्य निर्दिष्ट करने के लिए मैन्युअल रूप से संपादित करके किया जा सकता है। - कॉन्फ़िगरेशन मैनेजर
- करें बिल्ड:
यहाँ एक कदम-दर-कदम गाइड है।
- सक्रिय समाधान विन्यास ड्रॉप-डाउन सूची में, का चयन करें और एक सार्थक नाम (जैसे
Debug v3.5
) आपके पास पहले से जो कुछ भी मौजूदा सेटिंग के आधार पर दर्ज करें।
- प्रत्येक परियोजना फ़ाइल के लिए, संपादक में खोलें (आप दृश्य स्टूडियो में ऐसा कर सकते हैं, लेकिन आप पहले समाधान Explorer में उस पर राइट क्लिक करें और चुनें अनलोड परियोजना करने के लिए है, तो संपादित xyz.csproj)।
<PropertyGroup>
तत्व खोजें जो आपके द्वारा अभी बनाई गई कॉन्फ़िगरेशन से मेल खाता है (उदाहरण के लिए Debug v3.5|AnyCPU
)।
- एक्सएमएल में जोड़ें, उदाहरण के लिए बंद
</PlatformTarget>
तत्व के बाद, <TargetFrameworkVersion>
और <TargetFrameworkProfile>
आपको आवश्यकता है।
- फ़ाइल को सहेजें।
- समाधान एक्सप्लोरर में, प्रोजेक्ट को फिर से उपलब्ध कराने के लिए रीलोड प्रोजेक्ट कमांड का उपयोग करें।
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug v3.5|AnyCPU'">
<DebugSymbols>true</DebugSymbols>
<OutputPath>bin\Debug v3.5\</OutputPath>
<DefineConstants>DEBUG;TRACE;DOTNET35</DefineConstants>
...
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
...
</PropertyGroup>
ध्यान दें कि मैं भी प्रतीक DOTNET35
, जो मुझे स्रोत कोड में ढांचे निर्भर #if
बयान लिखने की अनुमति देता परिभाषित:
यहां एक नमूना है। उदाहरण के लिए, मैंने कोड के कुछ टुकड़े जो System.Tuple
पर भरोसा किया था और कक्षा का एक न्यूनतम संस्करण जोड़कर, मैं अपने .NET 4.0 एप्लिकेशन को .NET 3.5 पर बैक-पोर्ट कर सकता था।
यहाँ मेरी टुकड़ा है:
#if DOTNET35
namespace System
{
public class Tuple<T1, T2>
{
public Tuple(T1 item1, T2 item2)
{
this.item1 = item1;
this.item2 = item2;
}
public T1 Item1
{
get
{
return this.item1;
}
}
public T2 Item2
{
get
{
return this.item2;
}
}
private readonly T1 item1;
private readonly T2 item2;
}
}
#endif
स्रोत
2010-12-13 09:46:31
+1: ग्रेट उत्तर। इससे मुझे बहुत मदद मिली। संयोग से, मेरे पास कोड के कुछ टुकड़े भी थे जो 'System.Tuple' पर निर्भर थे। –
वीएस 2012 इस बारे में बहुत खुश नहीं लगता है – leonbloy