web-dev-qa-db-ja.com

名前空間「Interaction」は名前空間「http://schemas.Microsoft.com/expression/2010/interactivity」に存在しません

私はSystem.Windows.Interactivity DLLを問題なくいくつかのプロジェクトで使用しました。今の私の最新のプロジェクトでは、動作させることができません。常に次のエラーが発生します。

名前「Interaction」は、ネームスペース「 http://schemas.Microsoft.com/expression/2010/interactivity 」に存在しません。

<i:Interaction.Triggers>
    <EventTrigger EventName="SelectionChanged">
        <i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
            CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
    </EventTrigger>
</i:Interaction.Triggers>

そして名前空間:

xmlns:i="http://schemas.Microsoft.com/expression/2010/interactivity"

両方 Microsoft.Expression.InteractionsおよびSystem.Windows.Interactivityはプロジェクト参照に追加され、DLLをプロジェクト内のフォルダーにコピーしました。

これがどのように来るのか考えていますか? .NET 4.5でVS2012を使用しています

32
PitAttack76

はい、修正しました。 Visual Studio 2012 Professional(Blendを使用)をインストールしたときに、Blend for Visual Studioをインストールするオプションがありました。多分それが問題の原因だと思ったので、インストーラを再度開き、[変更]を選択し、[ブレンドfor Visual Studio]オプションをオフにしました。

そして、それがうまくいったと思います。インタラクションに関するエラーはもうありません。これで再び正常に動作するようになりました!実際の問題は何か、私は知らないので、誰かが知っているなら、教えてください:)

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseDoubleClick">
        <i:InvokeCommandAction Command="{Binding AddSelectLocomotifCommand}"
                                                     CommandParameter="{Binding SelectedItem, ElementName=listBoxLocs}" />
    </i:EventTrigger>
</i:Interaction.Triggers>
10
PitAttack76

他のすべての前にこの問題がある場合は、Microsoft.Expression.Interactions[〜#〜]と[〜#〜]System.Windows.Interactivityの両方を参照しているかどうかを再確認してください。

警告したいのは、PitAttack76が彼の答えに書いたようなことをすべてやろうとしたが、Blendがアンインストールされなかったことです。いくつかのパーツをアンインストールするだけなので、コンピューターを再起動し、Blendでプロジェクトを開きたいときに this thread のようなエラーメッセージを書き込みます。 Blendに.NET framework 4.5.1Microsoft Build Tools 2013をインストールする必要があるので、作業を再開します。それにもかかわらず、それは何の助けにもなりませんでした-私の問題は、参照にMicrosoft.Expression.Interactionsしかないことでした。

51
Artholl

同じ問題がありました。私がしたことは:

  1. Microsoft.Expression.Interactions名前空間を維持したまま、Visual StudioのプロジェクトからSystem.Windows.Interactivityおよびxmlns:i="http://schemas.Microsoft.com/expression/2010/interactivity"を削除します。
  2. Blendで同じプロジェクトを開きます。
  3. BlendにMicrosoft.Expression.InteractionsおよびSystem.Windows.Interactivityの正しい.netバージョンを追加します(私の場合は4.5)。
6
Murat Aykanat

欠落している参照Microsoft.Expression.Interactions AND System.Windows.Interactivityを削除しました。次に、Hansan PringleのNugetパッケージMicrosoft.SDK.Expression.Blendをインストールしました。これは、不足している参照をインストールします。

5
Eric Hewett

System.Windows.Interactivityの4.5バージョンビルドを参照していたが、.Net 4でプロジェクトをビルドしていたため、この問題が発生しました。

0
lorengphd

この質問が最初に提起された時点で、私にはわからない非常に簡単な解決策が見つかったので、この質問を更新したいと思います。今では、自動的にソリューションに適合するnugetパッケージをダウンロードできます。

パッケージは「Expression.Blend.Sdk」(Microsoftによる)と呼ばれ、Commandプロパティを持つInvokeCommandActionのバージョンを含むSystem.Windows.Interactivityのバージョンが含まれています。

"Blend.Interactivity.Wpf"(Microsoftによる)をインストールするのは簡単ですが、このnugetパッケージには、Commandプロパティを持つInvokeCommandActionを提供しない別の実装(私は推測します)が含まれています。

0
adaem

SQL and Java Learnerがコメントで述べたように:

VSインストーラーを開き、Blend SDKがインストールされていることを確認します。これを行うと、構成ファイルまたは他のファイルを変更することなく、4.5バージョンへの参照が得られます。 Blend SDKのインストールに失敗すると、4から4.5に変更できなくなります。

これは私のために働いた。

0
Gabriel