0

このようなxamlファイルがあります。

<Window x:Class="Space4it.Energilab.DataApplicationWPF.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
     xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:Space4it.Energilab.DataApplicationWPF"
    Title="Space4it NetBitter database interface" Height="700" Width="1200" 
    x:Name="rootElement"
    Icon="program.ico">


<Window.DataContext>
<local:MainWindowDataModel/></Window.DataContext>

MainWindowDataModel はメインの WPF プロジェクトにあり、"Debug - X86" で動作します。しかし、「Production - X64」に変更すると、次のエラーが発生します。

エラー 1 「MainWindowDataModel」という名前は名前空間「clr-namespace:Space4it.Energilab.DataApplicationWPF」に存在しません。C:\Users\tarp\Dropbox\Space4it\Development\Energilab\Development\Space4it.Energilab.Solution\Space4it.Energilab.DataApplicationWPF\MainWindow.xaml 10 5 Space4it.Energilab.DataApplicationWPF

「クリーン」を行い、再コンパイルしました....

面白いことに、DataGrid はデータを取得しますが、グリッド内のこの ComboBox は取得しません! これは、他のコンピュータからプログラムをインストールする場合にのみ問題になります。つまり、Windows Server 2008 です。

<DataGridComboBoxColumn Header="Key" SelectedValueBinding="{Binding Path=t_keys_id, UpdateSourceTrigger=PropertyChanged}">
                <DataGridComboBoxColumn.ElementStyle>
                  <Style TargetType="ComboBox">
                    <Setter Property="ItemsSource" Value="{Binding ElementName=rootElement, Path=DataContext.keyData}"/>
                    <Setter Property="IsEditable" Value="False"/>
                    <Setter Property="DisplayMemberPath" Value="nb_key" />
                    <Setter Property="SelectedValuePath" Value="id"/>
                  </Style>
                </DataGridComboBoxColumn.ElementStyle>
                <DataGridComboBoxColumn.EditingElementStyle>
                  <Style TargetType="ComboBox">
                    <Setter Property="ItemsSource" Value="{Binding ElementName=rootElement, Path=DataContext.keyData}"/>
                    <Setter Property="IsEditable" Value="True"/>
                    <Setter Property="DisplayMemberPath" Value="nb_key" />
                    <Setter Property="SelectedValuePath" Value="id"/>
                  </Style>
                </DataGridComboBoxColumn.EditingElementStyle>
              </DataGridComboBoxColumn>

誰にもアイデアはありますか?

4

1 に答える 1

1

推測では、Space4it.Energilab.DataApplicationWPF アセンブリは、「AnyCPU」や「x64」ではなく「x86」プラットフォームでコンパイルされていたと思います...そのため、構成を切り替えると、そのアセンブリの 64 ビット バージョン。

ソースを持っていないサードパーティのライブラリの場合は、CorFlags でハックして、64 ビットとして JIT できるようにすることができます (32 ビット フラグをクリアすることにより)。

ソースがある場合は、64 ビット モードで使用できるようにビルドできます。ソリューションの構成マネージャーを見て、「Production - x64」でプロジェクトに使用されているプラ​​ットフォーム構成を確認してください。

于 2012-08-22T18:22:04.300 に答える