2009-11-12 20 views
27

के बाद ब्राउज़र को सिल्वरलाइट xap को फिर से लोड करने के लिए मजबूर करना मेरे पास सिल्वरलाइट नियंत्रण पैक किया गया है और एक SharePoint वेब भाग पर तैनात है। अद्यतन को धक्का देने के बाद मुझे नियंत्रण के नए संस्करणों को लोड करने वाले ब्राउज़र के साथ परेशानी हो रही है। मैं अपने एक्सप परियोजना के असेंबली और फ़ाइल संस्करण को अद्यतन कर रहा हूं, लेकिन इससे कोई फर्क नहीं पड़ता। ब्राउज़र को नए एक्सप लोड करने का एकमात्र तरीका अस्थायी इंटरनेट फ़ाइलों में जाना और हटाना है। मेरे लिए, विकास के दौरान, यह ठीक है, लेकिन मुझे उत्पादन के समय से पहले समाधान ढूंढना होगा। कोई विचार?अद्यतन

उत्तर

35

यह करना है कि आपका ब्राउज़र संसाधन अनुरोधों को कैसे प्रबंधित करता है। फ्लैश के समान मुद्दे हैं और कुछ कामकाज हैं।

यहां एक article है जो समस्या और संभावित समाधानों का विवरण देता है।

मैं कुछ इस तरह कर रही सुझाव है:

आप अपने html में अपने XAP के लिए इस राशि कहते हैं:

<param name="source" value="ClientBin/myApp.xap"/> 

मैं संस्करण होगा यह तो जब भी आप एक धक्का कर आप संस्करण संख्या बदल जाते हैं। उदाहरण:

<param name="source" value="ClientBin/myApp.xap?ver=1"/> 
+0

कि मूल्य सहयोगी विधानसभा संस्करण पर वापस करता है (जैसे कि, 1.0.0.0)? –

+1

@ क्रिस नहीं यह पूरी तरह से बनाया गया है। जब भी आप क्लाइंट में परिवर्तन को धक्का देना चाहते हैं, तब तक आप कुछ भी डाल सकते हैं। सर्वोत्तम अभ्यास, हालांकि, इसे अपने संस्करण के अनुरूप रखना होगा। – Joseph

+1

ऐसा किया, सुझाव के लिए धन्यवाद। –

2

वाह! विंडोज फोन विकास में भी काम किया।

मैं लाइन तैयार की है:

NavigationService.Navigate(new Uri("/Game.xaml?versao="+version, UriKind.RelativeOrAbsolute)); 

और फिर विधि OnNavigatedTo ओवरराइड:

protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e) 
{ 
    base.OnNavigatedTo(e); 
    string var; 
    if (NavigationContext.QueryString.TryGetValue("version", out var)) 
    { 
     ... 
    } 
} 
2

टी के बहुत असामान्य नहीं .XAP कैशिंग में चलाने के लिए, जिसका अर्थ है कि हर बार जब आप को तैनात सिल्वरलाइट एप्लिकेशन का एक नया संस्करण, ब्राउज़र अद्यतन .XAP फ़ाइल डाउनलोड नहीं करता है।

आईआईएस गुणों को बदलने के लिए एक समाधान हो सकता है। आप इन कदम का पालन करके अपने .XAP फ़ाइल के लिए पर "सामग्री समय सीमा समाप्ति HTTP हेडर सक्षम करें" विकल्प चालू कर सकते हैं:

Open IIS Manager 
Go to “Default Web Site” and find web site for your Silverlight project. 
Find the .XAP file under ClientBin. 
Go to the properties page of the .XAP file, on HTTP Headers Tab, Turn on “Enable Content Expiration”, click the “Expire Immediately” radio button. 
Save the changes. 

इस तरह नवीनतम .XAP (एक नवीनतम .XAP फ़ाइल वहाँ केवल हैं) डाउनलोड किया जाएगा जब आप ब्राउज़र को बंद किए बिना अपने पृष्ठ को रीफ्रेश करते हैं।

आशा है कि इससे मदद मिलती है!

1

ClientBin

में निम्नलिखित web.config डाल
<configuration> 
    <system.webServer> 
    <staticContent> 
     <clientCache cacheControlMaxAge="0.00:00:01" cacheControlMode="UseMaxAge"/> 
    </staticContent> 
    </system.webServer> 
</configuration>