8

में वीएस -2010 प्रोजेक्ट लोड करते समय संपत्ति को मान्यता प्राप्त नहीं है या नहीं, मेरे पास वीएस -2010 में एक प्रोजेक्ट है जो एक्सएएमएल का उपयोग करता है और अब मुझे इसे अभिव्यक्ति मिश्रण 4 में लोड करने की आवश्यकता है। परियोजना वीएस -2010 में निर्मित और चलती है और यह पहला है समय यह मिश्रण में लोड किया गया है। यह ब्लेंड में निर्माण और चलाता है भले ही सदस्यों को पहचाना नहीं जाता है।प्रॉपर्टी ब्लेंड

स्केल संपत्ति क्यों पहचानी नहीं जाती है और यह कार्यात्मक रूप से काम करते समय त्रुटि के रूप में क्यों दिखाई देती है?

EDIT हालांकि यह बनाता है और चलता है, एक्सएएमएल मिश्रण में ग्राफिकल रूप से प्रदर्शित नहीं होता है और इसलिए गैर-तकनीकी उपयोगकर्ता द्वारा संशोधित नहीं किया जा सकता है।

The member "XXXX" is not recognized or is not accessible 

संपत्ति फ़ाइल के पीछे और में .cs कोड में मौजूद है:

.xaml फ़ाइलों को usercontrols के संदर्भ हो की एक संख्या में एक विशेषता है जो त्रुटि के साथ ब्लेंड द्वारा मान्यता प्राप्त नहीं है नहीं है प्रत्येक मामले में त्रुटि संदेश वही है।

मैंने इंटरनेट पर इसके बहुत से संभावित उत्तर देखे हैं लेकिन उनमें से कोई भी समाधान नहीं है। संदर्भित आइटम केवल पढ़ने के लिए नहीं हैं। विभिन्न वर्ग और गुण सार्वजनिक हैं। मैंने .csproj फ़ाइल में निम्न WPF संदर्भ भी जोड़ा है, जो गायब था।

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> 

निम्नलिखित कोड में, स्केल विशेषता को पहचान नहीं है भले ही यह उपयोगकर्ता नियंत्रण में एक संपत्ति के रूप में मौजूद है।

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Windows; 
using System.Windows.Controls; 
using System.Windows.Data; 
using System.Windows.Documents; 
using System.Windows.Input; 
using System.Windows.Media; 
using System.Windows.Media.Imaging; 
using System.Windows.Navigation; 
using System.Windows.Shapes; 

namespace NamespaceX.NamespaceY.UI.Shapes 
{ 
/// <summary> 
/// Interaction logic for MyLogo.xaml 
/// </summary> 
public partial class MyLogo : UserControl 
{ 
    public double Scale 
    { 
     get 
     { 
      return st.ScaleX; 
     } 
     set 
     { 
      st.ScaleX = value; 
      st.ScaleY = value; 
     } 
    } 

    public MyLogo() 
    { 
     InitializeComponent(); 
    } 
} 
} 

मेरी Navigation.xaml फ़ाइल मैं में:

<UserControl x:Class="NamespaceX.NamespaceY.UI.Shapes.MyLogo" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="132" Width="105"> 
<Canvas> 
    <Canvas.LayoutTransform> 
     <ScaleTransform x:Name="st" CenterX="0" CenterY="0" /> 
    </Canvas.LayoutTransform> 
    <Image Source="/Client;component/Images/MyLogo.png"/> 
</Canvas> 

यहाँ MyLogo.xaml.cs में पीछे कोड है:

यहाँ MyLogo.xaml में UserControl है यह है:

<UserControl x:Class="NamespaceX.NamespaceY.UI.UserControls.Navigation" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:shape="clr-namespace:NamespaceX.NamespaceY.UI.Shapes"  
Height="185" Width="1280" Loaded="UserControl_Loaded"> 
<FrameworkElement.Resources> 
    <ResourceDictionary Source="../Resources/Main.xaml" /> 
</FrameworkElement.Resources> 
<Canvas> 
    <shape:MyLogo Scale="1.2" Height="181.483" Canvas.Left="38" Canvas.Top="4" Width="188" /> 
    <StackPanel Canvas.Left="205" Canvas.Top="-2" Width="1062"> 

    </StackPanel> 
</Canvas> 

उत्तर

17

यहां समाधान है। आवेदन के .csproj फ़ाइल में, यह बदलने के लिए:

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
<Platform Condition=" '$(Platform)' == '' ">x86</Platform> 
इस के लिए

:

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

तथ्य दृश्य स्टूडियो की रिपोर्ट है कि है कि आप AnyCPU में विन्यास प्रबंधक में अधिक चल रहे हैं द्वारा धोखा न खाएं। आपको .csproj फ़ाइल को हाथ से संपादित करना होगा।

+0

इस सेटिंग में उपरोक्त त्रुटि से कोई लेना देना नहीं है। मेरे प्रोजेक्ट में .csproj फ़ाइल में डिफ़ॉल्ट रूप से AnyCPU है, और मुझे अभी भी इस त्रुटि का सामना करना पड़ रहा है :) – balint

+0

हाँ यह किसी चीज़ के साथ क्या करना है? –

+0

के पास कुछ भी नहीं है, इसे –

0

मुझे सिल्वरलाइट पर एक ही समस्या थी, यह पता चला कि मेरे उपयोगकर्ता नियंत्रण पर नामस्थान बहुत लंबा था, मैंने इसे छोटा कर दिया और यह काम करता है। आशा करता हूँ की ये काम करेगा!

0

मैं VS2012 में एक vb.net प्रोजेक्ट के साथ लगातार इस समस्या को पुन: उत्पन्न/ठीक करने में सक्षम था। परियोजना में ... गुण ... संकलित करें ... लक्ष्य CPU किसी भीCPU (डिफ़ॉल्ट) पर सेट है। सब कुछ ठीक काम करता है।

बदलें x64 करने के लिए लक्ष्य सीपीयू, सहेजें और बिल्ड

बंद और समाधान पुन: खोलें।

अब आप त्रुटि

बदलें लक्ष्य सीपीयू वापस किसी भी सीपीयू के लिए मिलता है "सदस्य" XXXX "मान्यता प्राप्त या सुलभ नहीं है नहीं है" सहेजें और बिल्ड

खिड़की अब ठीक से प्रदर्शित करता है।

10

वे इस तथ्य से संबंधित हैं कि मंच बदलने से कैश असेंबली बदल जाती है। स्वीकृत उत्तर स्वीकार्य नहीं है।

  1. बंद सभी फाइलों
  2. स्वच्छ समाधान
  3. समाधान

प्रभावित XAML अब निर्माण त्रुटियों की स्पष्ट किया जाना चाहिए पुनर्निर्माण:

यह मैं क्या सलाह देते है।

यह मेरे लिए काम करता है, आपके परिणाम भिन्न हो सकते हैं।

0

मुझे भी यही अपवाद था। मेरी समस्या यह थी कि संपत्ति का प्रकार एक असेंबली में था, जिसे परियोजना में संदर्भित नहीं किया गया था, जहां मैं UserControl का उपयोग करता हूं।

1

परियोजना के निर्माण गुणों को 'किसी भी सीपीयू' में बदलने से मेरे लिए समस्या हल हो गई। मैं अभी भी समझ नहीं पा रहा हूं कि यह समस्या से कैसे संबंधित है। लेकिन निश्चित रूप से यह जादू किया था।

1

जैसा कि अन्य ने कहा है, x64 से AnyCPU के लक्ष्य को बदलने से डिजाइनर में त्रुटियों को ठीक करता है, जैसा कि लगता है।

(क्यू) डिज़ाइन दृश्य 64 और एआरएम लक्ष्य प्लेटफार्मों के लिए उपलब्ध नहीं है जब दस्तावेज़ कस्टम तत्वों (एक उपयोगकर्ता नियंत्रण के साथ XAML, उदाहरण के लिए) शामिल हैं:

मैं पर दृश्य स्टूडियो फोरम निम्नलिखित पाया।

(ए) विजुअल स्टूडियो 2015 से शुरू होने पर, हमने आपको XAML को डिज़ाइन/लेखक बनाने में सक्षम बनाया है, भले ही आप x86 पर कुछ भी लक्षित करते हैं। विजुअल स्टूडियो 2015 अपडेट 2 को इस अनुभव को और भी बेहतर बनाने के लिए कई फिक्स और बदलावों को एक साथ लाया जाना चाहिए।

हालांकि, यह ध्यान देने योग्य है कि हम डिजाइनर में लिखे गए किसी भी कोड को निष्पादित करने में सक्षम नहीं होंगे जब परियोजना कुछ भी लक्षित कर रही है लेकिन x86। यह प्रतिबंध के कारण है कि एक x86 प्रक्रिया (जो एक्सएएमएल डिजाइनर है) एआरएम या एक्स 64 कोड नहीं चला सकता है। आपको पृष्ठ पर सभी XAML को देखने और संपादित करने में सक्षम होना चाहिए, जितना संभव हो सके WYSIWYG अनुभव को संरक्षित करने के लिए प्रतिस्थापन के साथ प्रतिस्थापित किए गए किसी भी कस्टम प्रकार के साथ (और जब आप वास्तव में डिज़ाइनर में कोड चलाने की परवाह करते हैं तो x86 पर स्विच करें)।

संबंधित मुद्दे