2

共通のスタイルを定義するために、多くの異なる WOF クラスから参照できるスタンドアロン dll 内に一連のスタイルを含めたいと考えています。

スタンドアロン dll を作成して参照しようとしましたが、問題が発生しています。

スタンドアロン dll のコードは次のとおりです。

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

        <Style x:Key="myStyle" TargetType="Button">
            <Setter Property="Background" Value="Orange" />
            <Setter Property="FontStyle" Value="Italic" />
            <Setter Property="Padding" Value="8,4" />
            <Setter Property="Margin" Value="4" />
        </Style>

    <!-- store here your styles -->
</ResourceDictionary> 

これが私がそれを参照しようとしている場所です:

<src:GX3ClientPlugin.Resources>
    <ResourceDictionary Source="pack://application:,,,/GX3StyleResources.dll;component/GX3StyleResources.xaml" />
</src:GX3ClientPlugin.Resources>

実行すると、次の例外が発生します。

ファイルまたはアセンブリ 'GX3StyleResources.dll, Culture=neutral' またはその依存関係の 1 つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

何か案は?

4

2 に答える 2

5

一部のプロジェクトでも同じことを行っています。プロジェクトに参照としてdllを追加してから、パックUriを使用しますが、拡張子.dllを指定しません。アセンブリ名(通常は.dllなし)を使用します

Source="pack://application:,,,/GX3StyleResources;component/GX3StyleResources.xaml"
于 2012-10-19T11:34:07.637 に答える
0

私も以前にこの問題を抱えていました。実際のC#コードでそのアセンブリ内の何かを実際に参照したことがない場合は、コンパイラ/ランタイム/両方の組み合わせがアセンブリをロードまたはコピーしないことがあります(私が一生できない基準を決定します)。

何か/何かを行うクラスをリソースアセンブリファイルに追加します-空白のままにしないでください。空白のままにしないと、場合によっては最適化されます。

public static class Resources
{
    public static void Init()
    {
        Console.Write(string.Empty);
    }
}

次に、アプリケーションから、アプリの起動メソッドでResources.Init()を呼び出してから、リソースアセンブリが確実に読み込まれるようにします。

それは汚い汚いハックですが、それは機能します。

于 2012-10-19T11:25:47.533 に答える