嘿,你们好,
我有一个使用sql express local DB的程序。我希望能够更新该数据库使用该程序来运行必要的脚本。已将文本文件作为嵌入资源添加到项目(VS2010)中,并且该文件包含文本。但它无法打开该文件。我得到一个"ArgumentNullException was unhandled“”值不能为空。参数名:流“这是代码...
Assembly assem;
StreamReader textReader;
assem = Assembly.GetExecutingAssembly();
//fails at this line below.
textReader = new StreamReader(assem.GetManifestResourceStream("projectName.sqlUpdates.txt"));
tReader.Peek() != -1)
script = textReader.ReadToEnd();发布于 2011-05-06 02:35:49
'projectName‘是文件sqlUpdates.txt所在的完整程序集和命名空间吗?运行上面示例的代码是在“projectName”程序集中还是在其他地方?
如果sqlUpdates.txt文件位于projectName程序集下面的命名空间中,则需要在对GetManifiestResourceStream的调用中指定,即:
Stream resource = assem.GetManifestResourceStream("projectName.nameSpace.sqlUpdates.txt")发布于 2011-05-06 02:30:15
这基本上意味着
assem.GetManifestResourceStream("projectName.sqlUpdates.txt")返回null...如果它找不到那个资源,它就会这么做。检查它是否确实在程序集中,例如使用Reflector或assem.GetManifestResourceNames()。
https://stackoverflow.com/questions/5902449
复制相似问题