回答:
プロジェクトファイルを右クリックし、[プロパティ]を選択します。
開いたウィンドウで[リソース]タブに移動し、タブページの中央に青いリンクがある場合は、それをクリックして新しいリソースを作成します。
次に、タブページの上のツールバーから、新しいテキストファイルを追加することを選択し、名前を付けます。プロジェクトに追加され、開かれます。
ここまで来たら、コードにResources.TheNameYouGaveTheTextFileHereと入力して、そのコンテンツにアクセスできます。クラスで初めてResourcesクラスを使用するときは、usingディレクティブを追加する必要があることに注意してください(Resourcesを入力してVSにメニューを表示させるには、Ctrl +を押してください)。
上記の説明について不明な点がある場合は、コメントを残してください。完了するか、意味がわかるまで編集します:)
Properties\Resources.Designer.cs
てnamespace YourProjectRootNamespace.Properties
、あなたが使用する必要がありますYourProjectRootNamespace.Properties
。ProjectRootNamespace
VisualStudioのプロジェクトのプロパティで定義されます。
Visual Studio 2003、Visual Studio 2005、および場合によっては以前のバージョン(これは2008でも機能します)では、プロジェクトにテキストファイルを含め、[プロパティ]パネルでアクションを[埋め込みリソース]に設定できます。その後、を使用してストリームとしてファイルにアクセスできますAssembly.GetManifestResourceStream(string)
。
ここでの他の答えはより便利です。完全を期すためにこれを含めます。
このアプローチは、画像、アイコン、サウンドなどの他のタイプのファイルを埋め込むために機能することに注意してください...
テキストファイルを埋め込んだ後、次のようなコードの任意の場所でそのファイルを使用します...
global::packageName.Properties.Resources.ThatFileName
ThatFileName
変数から指定したい場合はどうなりますか?
ここに私のために働いたものがあります。(実行可能な.NETイメージファイルに埋め込まれたファイルの内容を読み取る必要がありました。)
何かを行う前に、ファイルをVisual Studioのソリューションに含めます。(私の場合はVS 2017 Communityです。)に切り替えてからフォルダーをSolution Explorer
右クリックし、ファイルをProperties
選択Add Existing Item
しました。(と言いFileName.txt
ます。)次に、にいる間Solution Explorer
に、含まれているファイルを右クリックし、を選択してProperties
、Build Action
として選択しますEmbedded Resource
。
次に、このコードを使用してそのバイトを読み取ります。
string strResourceName = "FileName.txt";
Assembly asm = Assembly.GetExecutingAssembly();
using( Stream rsrcStream = asm.GetManifestResourceStream(asm.GetName().Name + ".Properties." + strResourceName))
{
using (StreamReader sRdr = new StreamReader(rsrcStream))
{
//For instance, gets it as text
string strTxt = sRdr.ReadToEnd();
}
}
これが私がしたことです:
リソースにアクセスするには:
a。関数を使用して現在のアセンブリを取得します。GetExecutingAssembly()
b。追加したリソースはテキストファイルだったので、次のコマンドを使用してストリームに読み込みました。GetManifestResourceStream(fileName)
。私がファイル名にアクセスする方法は、GetManifestResourceNames()
c。必要な場合は、StreamReader()
クラスを使用してファイルの終わりまで変数に読み込みます。
現在のアセンブリを取得するには、Pavanの回答に追加します(一般的なセクション):
Assembly _assembly;
GetManifestResourceStream(fileName)(リソースからの読み取りが必要なコード内):
try
{
_assembly = Assembly.GetExecutingAssembly();
_textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("*Namespace*.*FileName*.txt"));
}
catch
{
Console.WritelLine("Error accessing resource!");
}