2017-06-16 10 views
0

を公開見つけることができません。 \ Users \ユーザーのユーザー名\のAppData \ローカル\アプリ\ 2.0 \ KRWNP492.QP2 \コンテンツ\のname.pngフォルダは後に、私はC#コンソールアプリケーションを持っていると私はそこにこのコードを持っているアプリ

:私は、デバッグを実行しますが、アプリのアプリを公開した後、そのフォルダ

Cを検索したときには、これらの画像を取得します

KRWNP492.QP2Content

私はそのアプリをインストールするフォルダを変更することはできませんという名前の任意のフォルダが存在しないと考えるでください。また、エラーは次のとおりです。

System.ArgumentException:パラメータが無効です。 System.Drawing.Bitmap..ctorで (文字列のファイル名)X.Common.CommonMethods.IsExpectedScreen(ビットマップcurrentScreen、文字列のスクリーンネーム)で

私は何ができますか?

+0

だから、コンテンツも公開したいですか?または、イメージをファイルに埋め込みたいですか? – Default

+0

はいイメージを右クリックして[プロパティ]を選択すると、コンテンツタイプを設定できるようにする必要がある場合は、そのフォルダ(およびフォルダ内のイメージも)がアプリケーションがインストールされるフォルダに公開されます。 – gsiradze

+0

あなたの出力ディレクトリにコピーされるかどうか。それが出版に影響するかどうかは確かではありません。多分あなたはすでにそのセットを持っていますか? – Default

答えて

1

アプリケーションがコンパイルされると、「解決策」ディレクトリはありません。実行可能ファイル(.exe)といくつかのイメージファイルがあります。

Visual Studioのプロパティウィンドウでイメージファイルのビルドアクションプロパティを "コンテンツ"に設定し、出力ディレクトリプロパティを "コピーする"に設定します。これにより、アプリケーションをビルドするときにContentディレクトリとイメージが出力ディレクトリにコピーされるようにする必要があります。

あなたはその後、実行時に、あなたのイメージを検索するための相対パスを使用することができます。

string path = $"Content\\{screenName}.png"; 
System.Drawing.Bitmap b = new System.Drawing.Bitmap(path); 

あなたが.exeのと一緒に配備ディレクトリにイメージが含まれているコンテンツフォルダをコピーしていることを確認してください。

+0

ビジュアルスタジオを公開すると、そのフォルダをデプロイメントディレクトリに自動的にコピーできないのですか? – gsiradze

+0

これは展開方法にもよりますが、それは別の話です。 – mm8

+0

ソリューションを右クリックして公開してください – gsiradze

0

System.Reflection.Assembly.GetEntryAssembly().Location;を使用して、アプリケーションのパスを取得してください。

+0

デバッグ中の現在のフォルダを 'solution/bin/debug/appname.exe'と私のメソッドを使用しているのは、私がその 'content'フォルダを持っている解決フォルダです – gsiradze

+0

質問はアプリケーションの場所に関するものではありません。それはなぜOPの期待通りではないのかということです。質問をもう一度注意深く読んでください。 – Default

0

StartupPathプロパティを使用すると、簡単にディレクトリを取得できるはずです。

var rootDirectory = Application.StartupPath; 
+0

デバッグ時のStartupPathはbin/debugフォルダです。ソリューションフォルダ内にそのフォルダがあります。 – gsiradze

+0

質問は起動パスではありません。それはなぜOPの期待通りではないのかということです。質問をもう一度注意深く読んでください。 – Default

関連する問題