2010-03-12 15 views
2

我創建了一個的Silverlight應用程序(不含網站)命名TestApp,有一個文本框:爲什麼Silverlight應用程序在從導出的模板創建時顯示空白瀏覽器屏幕?

<UserControl x:Class="TestApp.MainPage" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"> 
    <Grid x:Name="LayoutRoot"> 
     <TextBlock Text="this is a test"/> 
    </Grid> 
</UserControl> 

我按F5 看到 「這是一個測試」 在我的瀏覽器(Firefox)。

我選擇文件 | 導出模板 |命名爲TestAppTemplate保存它。

我創建了一個新的基於上述模板的silverlight應用程序。

MainPage.xaml的確切與上面相同的XAML。

我按F5並在我的瀏覽器中看到黑屏

我看看這兩個HTML源碼,他們是相同

一切都我在這兩個項目比較是相同

我該怎麼做才能使從我導出的模板創建的Silverlight應用程序不顯示空白屏幕?

(創建從導出模板WPF應用程序這樣的正常工作)

+0

這似乎是修復在Visual Studio 2010/Silverlight 4 – 2010-04-27 16:31:25

回答

2

導出模板工具不理解的<XapFilename><SilverlightAppEntry>項目屬性。因此,在創建模板時,它不會在這些屬性中放置替換標記。

如果您查看從模板創建的項目的bin \ debug文件夾,您將看到Xap文件與創建模板的源項目名稱不同,而不是新項目的名稱創建。這本身並不是什麼大問題,但是您會發現應用程序入口點也使用模板源項目的原始名稱空間。然而,實際的應用程序入口點正確放置在新項目的名稱空間中。當測試頁面將Xap加載到插件中時,找不到入口點。在打開調試的IE中,你會得到一個錯誤對話框,在Firefox中,如果你打開它,我懷疑錯誤控制檯中有什麼東西。

如何解決

首先,當創建模板,不要讓VS自動導入(其唯一隻有一個文件複製反正)。

創建模板後,在「Documents \ Visual Studio 2008 \ My Exported Templates」文件夾中找到模板zip文件。解壓縮.csproj文件。

<XapFilename>屬性修改於: -

<XapFilename>$safeprojectname$.xap</XapFilename> 

<SilverlightAppEntry>屬性: -

<SilverlightAppEntry>$safeprojectname$.App</SilverlightAppEntry> 

放的.csproj回到Zip文件。

現在您可以將Zip文件複製到「Doc​​uments \ Visual Studio 2008 \ Templates \ Project Templates \ Visual C#\ Silverlight」文件夾中。

當您在新項目對話框中選擇Visual C#\ Silverlight時,應該出現該模板。

創建一個項目,它應該與F5正確運行。

+0

非常好,這就是它。我被絆了一下,創建了我的zip文件:我正在壓縮(使用7zip)壓縮文件內的*目錄*,導致Visual Studio無法將其識別爲模板。只需確保您將*文件*直接壓縮到zip文件中即可。好的解決方法,謝謝。 – 2010-03-12 11:33:53

+0

@愛德華:是的,我被自己發現了,它的恥辱是Windows自己的Extract Zip和Send To Zip也不是對稱的。 – AnthonyWJones 2010-03-12 11:50:33

相關問題