簡體   English   中英

如何以編程方式在Visual Studio解決方案/程序集中加載文件?

[英]How do I load a file in a Visual Studio solution/assembly programmatically?

我有一個控制台應用程序,當給定特定的命令行參數時,應將我的應用程序的框架配置文件寫入指定的目錄。 當前,該骨架配置文件現在位於我的程序集中(在我用來在編譯時生成它的t4模板下)。

當我的應用程序使用相關參數運行時,我希望能夠在運行時將經過t4處理的配置文件的結果加載到內存中,然后將其寫入磁盤上的任意位置。

我不知道如何在我的C#代碼中的解決方案中引用和加載文件。 甚至可以將這樣的文件資源嵌入到程序集中並從代碼中引用它嗎? 還是在安裝過程中需要將文件放在文件系統上? 如果可能的話,我寧願不必做后者。

任何幫助或建議,將不勝感激。 :)

哎呀。 在基於以下stackoverflow問題做出一些推斷之后,找到了答案:“ 如何在.NET程序集中嵌入文本文件?

技巧是將文件的“生成操作”屬性設置為“嵌入式資源”。 (請注意,您是針對t4模板生成的結果而不是模板本身進行設置的。)

在此處輸入圖片說明

然后它將被嵌入到您的程序集中,您可以在代碼中引用它。

var assembly = Assembly.GetExecutingAssembly();
string configFileContents;
using(StreamReader reader = new StreamReader(assembly.GetManifestResourceStream("MySolutionNamespace.ContainingFolder.SiteConfiguration.json"), Encoding.Unicode))
{
    configFileContents = reader.ReadToEnd();
}

Console.WriteLine(configFileContents);
Console.ReadKey();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM