我已經看到很多關於此的帖子,並且無法繼續工作。我在項目的Resources文件夾中添加了一個文件(右鍵單擊project-> Properties-> Resources,然後選擇File,Add File)。從Visual Studio 2013中的Properties.Resources獲取流
我試着將Build Action設置爲資源和嵌入式資源。
我需要使用StreamReader讀取該文件。
我曾嘗試以下,但都返回NULL爲myStream不管我設置生成操作到資源或嵌入的資源:
// IF I ADD FILE AS SUGGESTED BELOW IN UPDATE, THIS WILL WORK; OTHERWISE, I GET NULL
Stream myStream = Assembly
.GetExecutingAssembly()
.GetManifestResourceStream("MyProject.General.Tests.mytestfile.csv"); //returns NULL
using (CsvReader csv = new CsvReader(new StreamReader(myStream), true)
{
...
}
我也試過,但它也返回NULL
Stream myStream = Assembly
.GetExecutingAssembly()
.GetManifestResourceStream(Properties.Resources.mytestfile); //returns NULL
using (CsvReader csv = new CsvReader(new StreamReader(myStream), true)
{
...
}
如果我快速查看並鍵入這個Properties.Resources.mytestfile,我確實得到了我的文件的字符串表示。
UPDATE代替添加文件通過右鍵點擊項目 - >屬性 - >資源(這樣,它不會工作),添加它通過右鍵點擊項目 - > ADD->現有的項目,然後SET BUILD ACTION = EMBEDDED RESOURCE,它將起作用。 (感謝Aedvald Tseh的詳細回答,幫助我瞭解了這一點)
這是不是甲流,它嵌入一個字符串。所以使用新的StringReader(Properties.Resources.mytestfile) –
這是行不通的。我嘗試將mytestfile設置爲BuildAction = Resource和Build Action = Embedded Resource,但都不起作用。應用程序崩潰,看到沒有錯誤 – pixel