0

私はこのようなWPFアプリケーションプロジェクトディレクトリを持っています

ここに画像の説明を入力してください

実際、Visual Studioプロジェクト内に「Resources」という名前のフォルダーを追加し、それにいくつかの画像を追加しました。実際には、フォルダーは上の場所に作成されました。上の写真で確認できます。「Resource」フォルダー内の画像のデフォルトのプロパティを以下に示します。

BuilAction:Resource
Copy output Directory:Do not Copy 

このフォルダから「form1.ico」ファイルという画像をこのように読んでいます

<Window
    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" x:Class="MyApp.FrmMain"
    Title="MyApp" Height="768" Width="1024" WindowStartupLocation="CenterScreen" x:Name="MainWindow" WindowStyle="None" Loaded="MainWindow_Loaded" ShowInTaskbar="False" ResizeMode="NoResize" WindowState="Maximized" mc:Ignorable="d" Icon="/MyApp;component/Resources/form1.ico" StateChanged="Window_StateChanged">

Visual Studio 2008を使用してアプリケーションを実行すると、すべての考えがうまく機能しますが、リソースファイルはBinフォルダー内に作成されません。私の問題は、binフォルダーをこの場所から別の場所にコピーして、で作成されたexeを実行することです。 binアプリケーションがクラッシュします(画像の絶対パスを検索しているようです)これは、リソースフォルダを別の場所に移動した場合にも発生します。このように画像のプロパティを設定しようとしました

BuilAction:Content
Copy output Directory:copy always

現在、binフォルダー内にフォルダー名「Resources」を作成しています。ただし、Visual Studioを介してアプリケーションを実行することもできません。例外をスローして、特定のアイコンが見つからないことを示します。

  • なぜこれが起こっているのか誰かが説明できますか?
  • アプリケーションをデプロイするときにこれらのリソースフォルダーをコピーするにはどうすればよいですか?アプリケーションがデプロイメント環境でそのフォルダーからファイルを読み取る必要があるためです。
  • プロパティを埋め込みリソースに設定した場合、実行時に画像を別の画像に置き換えることはできますか?

前もって感謝します:)

4

1 に答える 1

1

相対パスを参照するには、アイコンの場所を次のように設定します。

Icon="Resources/form1.ico"

画像がコピーされない理由がわかりません。

これを試したところ、リソース ディレクトリ内のデバッグ ディレクトリにアイコンがコピーされました。

念のため、アイコンの「ビルドアクション」を「コンテンツ」に、「出力ディレクトリにコピー」を「常にコピー」に設定していますか?

また、念のためもう一度...プロジェクトにファイルを含めていますか?つまり、「すべてのファイルを表示」オプションをオンに設定すると、アイコンを右クリックすると、プロジェクトに含めることができます。

于 2013-01-16T20:40:06.520 に答える