Tag: embedded resource

嵌入.dll – 用C#解决程序集

我有一个.dll我试图将其作为资源嵌入可执行文件中。 以下两个问题有些帮助,但不是完整的帮助: 将组件嵌入另一个组件中 这似乎不像书面那样有效; args.Name不能像写的一样使用,但是即使它被修复了,程序仍然会抱怨缺少.dll,表明程序集没有正确加载。 将DLL嵌入已编译的可执行文件中 以及其中一个答案中的链接: Embed managed dlls easily in a .NET assembly 但是,我的项目中没有任何“App.xaml *”文件 – 我没有使用WPF; 我正在使用WinForms作为我的可执行文件(由于可执行文件的性质,更改不是一个真正的选项)。 因此,我正在寻找一套完整的指令,用于将类库作为资源嵌入可执行文件中,并从资源中加载.dll,而不需要嵌入式资源之外的.dll文件。 例如,简单地将“App.xaml”文件添加到WinForms项目是否可行,或者是否存在我不知道的负面交互? 谢谢。 编辑:这是我目前正在使用的: /// /// Stores the very few things that need to be global. /// static class AssemblyResolver { /// /// Call in the static constructor of the startup class. /// public static […]

有没有办法在.NET中找到嵌入式资源的最后修改日期?

有没有人知道这样做的方法(在运行时)? 我不确定我可以在描述中详细说明比标题中已经给出的更多,但是如果你觉得我错过了一些话就说了!

WPF:在XAML中访问嵌入式资源

可能重复: WPF图像资源 我的VS C#项目中有一些图像被声明为嵌入式资源。 我正在使用以下命令在.cs文件中访问它们: Stream logoStream = GetType().Assembly.GetManifestResourceStream(“ProjNS.Image.logo.png”); Bitmap logo = new Bitmap(logoStream); 但是如何在.xaml文件中访问我的徽标?

ASP.NET在Bundling中使用嵌入式资源

我正在尝试实现一种通用方法,为我的Web解决方案中的不同程序集提供使用嵌入式资源中嵌入的JavaScript和CSS文件的可能性。 此博客文章显示了使用VirtualPathProvider的技术。 这很好,但VirtualPathProvider需要包含在包含嵌入资源的每个程序集中。 我尝试从博客文章中增强VirtualPathProvider,以便可以将程序集传递给它并从程序集中加载资源: public EmbeddedVirtualPathProvider(VirtualPathProvider previous, Assembly assembly) { this.previous = previous; this.assembly = assembly; } 初始化时,它从传递的程序集中读取所有嵌入的资源: protected override void Initialize() { base.Initialize(); this.assemblyResourceNames = this.assembly.GetManifestResourceNames(); this.assemblyName = this.assembly.GetName().Name; } 并且GetFile从传递的程序GetFile读取内容: public override VirtualFile GetFile(string virtualPath) { if (IsEmbeddedPath(virtualPath)) { if (virtualPath.StartsWith(“~”, System.StringComparison.OrdinalIgnoreCase)) { virtualPath = virtualPath.Substring(1); } if (!virtualPath.StartsWith(“/”, System.StringComparison.OrdinalIgnoreCase)) { virtualPath = […]

如何从嵌入式DLL中解析时正确使用JSON.NET?

我在Visual Studio中编写C#代码。 我在项目中添加了嵌入式DLL,我正在动态加载程序集。 我们使用JSON.NET来序列化和反序列化类型为Context.JobDataObj对象,该对象在其中一个嵌入式DLL中定义,并在各种程序之间传递DLL。 不幸的是,每当我尝试反序列化时,我都会收到以下错误: 在JSON中指定的类型’Context.JobDataObj,HPMContext,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’与’Context.JobDataObj,HPMContext,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’不兼容。 我查了JSON.NET源代码中的错误,错误是指IsAssignableFrom返回false …当我将DLL移出项目时,seralization和deseralization就像一个魅力。 更新: 我已经设法引入JSON.NET源代码并对其进行调试……显然,它是否使用嵌入式DLL之间的唯一区别是IsAssignableFrom的返回值: if(objectType!= null &&!objectType.IsAssignableFrom(specifiedType)) objectType在各种方式上都与specifiedType相等,我检查了它的所有程序集,类型,接口,成员等等。有谁知道IsAssignableFrom如何确定它的值?

wpf中的图像问题(图像没有显示)

我不明白为什么我不能在WPF中显示图像。 也许我意外地修改了我的资源文件夹,这就是我没有显示的原因。 所以我创建了一个新的wpf应用程序,我有这个: 当我运行程序时,我的图片显示为: 为什么当我尝试在我的程序中执行相同的操作时,图像不显示!? 请注意当我运行程序时没有图像… 在我的其他应用程序中,我只是将图像控件拖到我的主窗口,然后在我的计算机上浏览了一个随机图像,当我编写并运行它时它工作正常。 为什么我不能对我正在使用的应用程序做同样的事情? 编辑: 有些图像可以使用,而有些图像则无法使用! 为什么? 看一看: 当我编译并运行一个图像时不显示! 并查看文件如何具有相同的属性。 文件夹图像的设置: mov image的设置:

将(嵌入式资源)架构添加到XmlReaderSettings而不是Filename?

我正在编写一个解析Xml文件的应用程序。 我有架构(.xsd)文件,我在尝试反序列化之前用它来validationXml: XmlReaderSettings settings = new XmlReaderSettings(); settings.Schemas.Add(null, “./xml/schemas/myschema.xsd”); settings.ValidationType = ValidationType.Schema; XmlReader reader = XmlReader.Create(xmlFile, settings); XmlDocument document = new XmlDocument(); document.Load(reader); ValidationEventHandler eventHandler = new ValidationEventHandler(settings_ValidationEventHandler); document.Validate(eventHandler); 请注意,参数*。/ xml / schemas / myschema.xsd“是.xsd相对于程序执行的路径。 我不想使用文件名/路径,而是宁愿将.xsd文件编译为我项目中的嵌入式资源(我已经添加了.xsd文件并将Build Action设置为Embedded Resource)。 我的问题是……如何将嵌入式资源架构添加到XmlReaderSettings架构列表中? settings.Schemas.Add有4种重载方法,但没有一种方法将嵌入资源作为参数。 它们都采用模式文件的路径。 我过去曾使用嵌入式资源来动态设置标签图像,所以我对使用嵌入式资源有些熟悉。 看看我的其他代码看起来我最终得到的是一个包含内容的Stream : System.Reflection.Assembly myAssembly = System.Reflection.Assembly.GetExecutingAssembly(); Stream myStream = myAssembly.GetManifestResourceStream(resourceName); 我假设嵌入的.xsd也将作为流读入,所以这会缩小我的问题。 当我引用包含架构而不是文件名的流时,如何将架构添加到XmlReaderSettings?

C#中的嵌入式资源字体无法正常工作

我在我的资源中嵌入了一个.ttf字体文件(特别是“Amatic Bold”),我使用下面的代码来获取Font。 我试过这篇文章的代码: 如何在我的C#应用​​程序中嵌入字体? (使用Visual Studio 2005) 这是我的实现: static public Font GetCustomFont (byte[] fontData, float size, FontStyle style) { if (_fontCollection == null) _fontCollection = new PrivateFontCollection(); IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length); System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length); _fontCollection.AddMemoryFont(fontPtr, fontData.Length); System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr); return new Font(_fontCollection.Families[0], size, style); } 我这样使用它: Font font = GetCustomFont(Properties.MainResources.Amatic_Bold, 25, System.Drawing.FontStyle.Bold); 字体应如下所示: 问题是字体正在加载但在使用时没有正确显示; 它看起来像一个“Arial”或其他标准字体而不是它应该是什么。 如果我在Windows中安装该字体,它可以工作(我想很明显…) […]

从代码中访问资源以设置NotifyIcon.Icon

我想在WPF中获取NotifyIcon的图标。 所以我在一个Resources文件夹中添加了一个.ico文件到我的解决方案,并将构建操作设置为Resource 。 我试图在代码背后抓住这个资源,如下所示: var icon = (Icon) Application.Current.FindResource(“/Resources/icon.ico”) 这不起作用。 除此之外: Application.Current.Resources.Count返回0 。 编辑 var i = new Icon(Application.GetResourceStream(new Uri(“/systemtrayicon.ico”, UriKind.Relative)).Stream); 将根中的图标和构建操作设置为Resource 。 还是行不通。 再次编辑: 我需要清理解决方案并按照以下方式重建: WPF在加载图像时抛出“无法找到资源”exception

读取嵌入的文本文件

我已经创建了一个完美的项目。 我的问题涉及安装项目。 当我在另一台计算机上使用它时,即使它们在部署期间位于资源文件夹内,也无法找到该文本文件! 在另一台计算机上安装软件后,如何确保我的程序能够找到这些文本文件! 我一直在寻找这个解决方案但是徒劳无功。 请帮我解决这个问题。 如果我能得到一个完整的代码,我将非常高兴!