2

Visualstudi02012で作成されたSilverlight5アプリケーションで奇妙な問題が発生しました。

問題:

Silverlight5のExpressionBlendPreviewを使用して、ビューにストーリーボードを追加し、グリッドの読み込み時にストーリーボードをトリガーするControlStoryboardActionを追加しました。これはExpressionBlendでは問題なくレンダリングされますが、VS2012でxamlを見ると、次のエラーで失敗します。

The type 'ControlStoryboardAction' from assembly 'Microsoft.Expression.Interactions' is built with an older version of the Blend SDK, and is not supported in a Silverlight 5 project.

アプリケーションはブラウザで正常にビルドおよび実行されます。つまり、ストーリーボードがトリガーされますが、VS2012がエラーをスローすることは依然として非常に厄介です。

アセンブリバージョンの問題のようですが、すべてがSilverlight5用にセットアップされています。

以下は問題のxamlです:

<Grid x:Name="LayoutRoot" Background="White">
    <i:Interaction.Triggers>
        <i:EventTrigger>
            <ei:ControlStoryboardAction x:Name="GridLoadedTriggerEvent" Storyboard="{StaticResource StoryBoardWindowFadeIn}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <Grid.RowDefinitions>
        <RowDefinition Height="60" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    ...Excluded text...
</Grid>

問題は、以下の使用にあります。

<ei:ControlStoryboardAction x:Name="GridLoadedTriggerEvent" Storyboard="{StaticResource WindowFadeIn}"/>

名前空間から:xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"

誰かがこのバージョンの問題があるように見える理由の解決策や説明を持っていますか?

ありがとう

4

2 に答える 2

1

この正確な問題を再現することはできませんでした (Blend Preview では正常に動作し、ブラウザーでは正常に実行およびビルドできますが、VS 2012 では XAML エラーが表示されます)、\Silverlight\v4.0\バージョンを参照したときに VS 2012 で同様のエラーが発生しましたのバージョンMicrosoft.Expression.Interactions.dllと組み合わせて.\Silverlight\v5.0\System.Windows.Interactivity.dll

したがって、これら 2 つの DLL が次のことを確認できますか。

Microsoft.Expression.Interactions.dll

System.Windows.Interactivity.dll

どちらも、 にある Blend Silverlight 5.0 アセンブリを参照していC:\Program Files (x86)\Microsoft SDKs\Expression\Blend\Silverlight\v5.0\Librariesます。

そうでない場合は、v5.0 バージョンからこれらの項目を削除して再度追加してみてください。

于 2012-11-16T18:26:40.180 に答える
0

私は同様の問題を抱えていました-おそらく同じ問題--そして私の問題はSystem.Windows.Interactivity.dll.

私のプロジェクトではMVVM Lightを使用していますが、どうやら独自のバージョンを提供しているようSystem.Windows.Interactivity.dllです。私が知る限り、バージョン情報は正しいのですが、とにかく VS2012 エラーがありました。

参照を削除して再度追加すると (Scott Koland の 11 月 16 日のメモと同じ場所)、すべてが解決され、正常に動作するようになりました。

于 2013-03-27T06:20:45.323 に答える