每当我完成Path-Resolution
的任务时,我总是感到困惑。我有关于报告问题的以下信息:
ASP.NET MVC-5 Application
font file
即MyriadPro-SemiBold.ttf
//a value receives a path + name of the file in variable i.e. name
string name = "myApplicationName.fonts.MyriadPro-Semibold.ttf";
//object (named as assembly) of class System.Reflection.Assembly.
var assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream(name))
// stream always gets null value (don't know why!)
{
if(stream != null)
{
//myCode waiting for above stream not to be null :-(
}
else
{
throw new ArgumentException("No resource with name " + name);
}
}
我不太了解Visual Studio在paths
方面在不同类型的应用程序中的工作方式。
答案 0 :(得分:8)
您的资源应该嵌入:
您可以进行一些测试以获取所有资源并找到好名字。之后,您的代码似乎是正确的。
var allRessources= System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames();
var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("fullpath here");
if (stream == null) return;
修改强>
要在VS项目中添加文件作为嵌入资源:只需将文件添加到项目中,单击它,然后在属性下将构建操作设置为嵌入式资源。那就是它!
有关嵌入资源的更多信息:https://support.microsoft.com/en-us/kb/319292#bookmark-4