Json.Net可以嵌入到可执行文件中吗?我将Netwonsoft.Json库的“嵌入互操作类型”属性设置为true,它返回错误:无法从程序集“c:pathpackagesNewtonsoft.Json.9.0.1libnet45Newtonsoft.Json.dll”中嵌入互操作类型,因为它缺少'ImportedFromTypeLibAttribute'属性或'PrimaryInteropAssemblyAttribute'属性c:pathpackagesNewtonsoft.Json.9.0.1libnet45Newtonsoft.Json.dll看起来它正在寻找Newtonsoft.Json库中缺少的引用,但我不完全确定。是否可以将Json.Net嵌入到可执行文件中?你没有说你使用的是哪种语言,但这里是你如何为C#做的首先,关闭“嵌入互操作类型”然后,转到主可执行项目,卸载并编辑.csproj文件,然后在下面的行:将此XML添加到您的项目文件中,保存并重新加载。%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)然后,您将向主项目添加一个新的代码文件并向其中添加以下代码(修改以适合您的应用程序的命名/结构方式,以WPF应用程序,放置它的好地方是App.xaml.cs):[STAThread]publicstaticvoidMain(){AppDomain.CurrentDomain.AssemblyResolve+=OnResolveAssembly;App.Main();//运行WPF启动代码。}privatestaticAssemblyOnResolveAssembly(objectsender,ResolveEventArgse){varthisAssembly=Assembly.GetExecutingAssembly();//获取AssemblyFile的名称varassemblyName=newAssemblyName(e.Name);名称vardllName=assemblyName。+".dll";//从嵌入式资源加载-如果程序集已经//在与应用程序相同的文件夹中,则不会调用此函数。varresources=thisAssembly.GetManifestResourceNames().Where(s=>s.EndsWith(dllName));if(resources.Any()){//99%的情况只会有一个匹配的项目,但如果你没有,//你将不得不改变逻辑来处理那些案件。var资源名称=资源。第一的();使用(varstream=thisAssembly.GetManifestResourceStream(resourceName)){if(stream==null)returnnull;varblock=newbyte[流。长度];//安全地尝试加载程序集。尝试{流。读取(块,0,块。长度);返回大会。加载(块);}catch(IOException){返回null;}catch(BadImageFormatException){返回空;}}}//如果资源不存在,返回null。返回空值;最后,确保将主应用程序的目标方法更新为您刚刚添加的项目的主方法来源:http://www.paulrohde.com/merging-a-wpf-application-into-a-single-exe/以上是C#学习教程:Json.Net可以嵌入可执行文件吗?分享的所有内容,如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处:
