如何在 C# 应用程序中访问二进制资源

2023-11-21

我正在尝试将空的 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 值)。所以我的问题是这样的:

如何使我自己的应用程序可以访问我的资源?顺便说一句,我已经将其添加到项目中并将其标记为“嵌入式资源”。

Thanks!


您需要在“empty.mdb”前面加上程序集的默认命名空间。就像是:

objStream = objAssembly.GetManifestResourceStream("My.Namespace.empty.mdb");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 C# 应用程序中访问二进制资源 的相关文章

  • 我可以将 XAML/WPF 窗口复制到第二个窗口中,例如画中画电视吗?

    我有一个带有两个 XAML WPF 窗口 派生自 NavigationWindow 的应用程序 每个窗口都包含一个父 UserControl 其中放置了所有子控件 在其中一个窗口中 我想以画中画电视的方式显示第二个窗口的内容 实际上只是父
  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • 将多对多关系与实体框架中的属性映射

    我总是使用属性将实体的属性映射到相应的列 这是一个例子 Table news entries public class News Key public int Id get set Column d date public DateTime
  • 我们如何从 getschemaTable 获取列大小和数据类型?

    我是一个新手 我试图从数据库中的某个表中检索列名称 大小 最大长度 和数据类型 当我执行以下代码时 希望它显示所有列类型和名称 我没有找到如何引用 Size 我使用了 ColumnSize 但据说 DataColumn 不包含此方法的定义
  • C# 字符串前的“@”[重复]

    这个问题在这里已经有答案了 可能的重复 NET 字符串前面的 是什么 https stackoverflow com questions 556133 whats the in front of a string for net 我在一本C
  • 使用反应式扩展对事件进行单元测试

    我在用着 NET 的反应式扩展 Rx http msdn microsoft com en us devlabs ee794896 aspx将事件公开为IObservable
  • 我可以安全地删除临时 ASP.Net 文件夹的内容吗?

    每当我运行时 我的应用程序都可以正常工作VS 2010 当我将其上传到服务器并运行时IIS它给编译器错误 CS0433 c Windows Microsoft NET Framework v4 0 30319 Temporary ASP N
  • 访问 JAR 资源

    我有一个jar包含我想要分发的资源 主要是缓存 日志记录等配置 的文件 我对这些资源的相对路径有问题 所以我做了我在另一个 stackoverflow 问题中发现的问题 该问题说这是一种有效的方法 ClassInTheSamePackage
  • 禁止显示“资源名称不是有效标识符”

    我有一个包含 5000 多个资源字符串的项目 几乎所有的标识符中都有句点 我们正在切换到自动生成强类型类 当然 由于周期的原因 我们看到了几千条警告 资源名称 blah 不是有效的标识符 我知道不是 生成器将句点更改为下划线 一切都很好 我
  • 如何从 401 服务器错误获取标头

    我正在编写一个端口扫描器来检测本地网络上运行的 Web 服务 其中一些 Web 服务需要基本身份验证 我不知道这些服务的用户名 密码 我只想列出它们 因此现阶段无法提供凭据 我正在使用代码 var request HttpWebReques
  • C# 通过实体框架调用 SQL Server 用户定义的函数

    我不敢相信我必须问这个问题 但我被困住了 我花了三个小时试图解决这个问题 但我被困住了 我可以在以前版本的 C 中执行此操作 但我卡住了 在继续之前 我正在研究堆栈 视觉工作室2012 SQL Server 2012 NET Framewo
  • WebApi XML 反序列化 - 具有多个子节点的节点未正确反序列化为子节点对象数组

    我正在尝试通过将 XML POST 到 WebApi POST 方法来反序列化它 除了具有多个子节点的节点之外 一切正常并且反序列化正常 代码如下所示 Serializable public class grandparentnode Xm
  • 将列表拆分为多个部分 - VB 转换失败

    尝试编写一种将列表拆分为子列表的方法 Private Function SplitIdsIntoChunks ByVal keys As List Of String As List Of List Of String Return key
  • 从字符串数组中删除项目

    我有一个包含如下数据的数据库字段 76 60 12 例如 如果我想删除60 我该怎么办 要删除的号码可以是任何地方 如果需要的话 我还需要删除逗号 我正在使用 NET 2 0 我会用逗号分割字符串 删除元素 然后再次连接字符串 希望这一切都
  • 如何在 VB.Net winforms 应用程序中找到 main() 入口点?

    当我用 C 创建 WinForms 应用程序时 输出类型为Windows Application我得到一个program cs with a static void Main 我可以用它来处理命令行参数等 但是 当我为 VB 创建等效项目时
  • 本机 C++ 和 C# 互操作

    因此 我正在构建一个必须使用 C 工作的应用程序 但 MFC ATL 太混乱了 不符合我的喜好 所以我有了一个绝妙的主意 即用本机 C 编写所有 思考 代码 并用 C 编写所有漂亮的 UI 代码 但问题是两者之间的互操作性 在我对此过于着迷
  • .NET ListView列顺序问题

    我在表单中遇到问题 我已按以下顺序将列添加到 NET ListView 控件 A B C D A D 列的显示索引按顺序为 0 3 但它们的显示顺序错误 A B D C these are switched at runtime 注意 一切
  • 设置外部应用程序焦点

    在 VB NET 中 您可以使用以下命令将焦点设置到外部应用程序 AppActivate Windows Name or AppActivate processID As Integer 现在 如果您这样做 则效果很好 Dim intNot
  • 锁定文件的一个块

    我有一个大小为 192k 的文件 我想锁定文件的中间部分 例如 我想用 c 锁定文件的 64k 128k 知道如何锁定文件的那部分吗 你需要使用锁定文件Ex http msdn microsoft com en us library win
  • 如何将 Binding.Path 属性绑定到基础数据?

    我正在尝试以非常动态的方式绑定 TextBlock 的 Text 属性 我需要从底层对象获取路径 这是数据模板

随机推荐