我正在尝试将一个空的Access数据库(.mdb)作为资源存储在我的应用程序中。然后,我想将它写入文件系统并填充表定义等内容。但是在Visual Studio 2005和我的C#应用程序中,我遇到的问题是无法访问存储在同一程序集中的资源(我原本认为默认情况下应该可以访问)。以下是我的代码:
byte[] abytResource;
System.Reflection.Assembly objAssembly = System.Reflection.Assembly.GetExecutingAssembly();
objStream = objAssembly.GetManifestResourceStream("empty.mdb");
abytResource = new Byte[objStream.Length];
objStream.Read(abytResource, 0, (int)objStream.Length);
objFileStream = new FileStream(newDatabasePathWithName, FileMode.Create);
objFileStream.Write(abytResource, 0, (int)objStream.Length);
objFileStream.Close();
GetManifestResourceStream返回NULL,根据文档,这是因为资源必须是私有的(即使不存在也会返回非NULL值)。所以我的问题是:
我怎样让我的资源对我的应用程序可用?我已将其添加到项目中并标记为“嵌入式资源”。
谢谢!