标签: .net-assembly

如何在十六进制的程序集文件中查找方法?

我有一个测试程序集,我想在文件中找到方法

[CompilerGenerated]
public bool get_CreateFlash()
{
    return this.cZBH;
}
Run Code Online (Sandbox Code Playgroud)

我使用十六进制编辑器和模板进行搜索

2B * 26 16 02 7B * * * * 0A 2B * 06 2A
Run Code Online (Sandbox Code Playgroud)

其中*是任何字节,因为我没有在ILSpy等工具中看到确切的字节.

我找到了1500场比赛,自然而然就是吸气.不同的是7B****,就像这样

"2B 02 26 16 02 7B 1D 00 00 04 0A 2B 00 06 2A"
"2B 02 26 16 02 7B 1E 00 00 04 0A 2B 00 06 2A"
...
etc.
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到我需要的东西?

.net reflection hex .net-assembly

4
推荐指数
1
解决办法
2261
查看次数

Assembly.Load性能影响

我正在开发一个组件,它执行使用ioc注册的任何接口的临时方法,执行时刻取决于不同的触发器.它必须能够保存要对数据库执行的操作,因此我将方法名称,类型和参数列表(序列化为BLOB)保存到数据库中,直到需要为止.

当触发发生时,我需要在类型的实例上执行方法.因为我正在使用依赖注入,我将接口名称保存到数据库中(格式"Namespace.IInterface, AssemblyName")

Resolve<IInterface>()在ioc容器上运行方法,我需要它的实例Type:

Assembly assembly = System.Reflection.Assembly.Load(assemblyName);
Type service = assembly.GetType(typeName);
object instance = IOCContainer.Resolve(service);
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 如果我确定包含程序集已经加载到应用程序域中,是否有更好的方法从其名称获取Type实例?(我试过简单Type.Load(typeName)但得到了null)
  • 如果已加载有问题的程序集,CLR会优化该进程(使用已加载),还是需要手动缓存程序集列表以防止反复加载同一程序集的性能影响?

c# clr performance system.reflection .net-assembly

4
推荐指数
1
解决办法
3017
查看次数

如何将第三方dll与自己的dll结合起来

我在C#中创建了一个库TRSetup.dll.该项目包括一些第三方DLL.(例如:GalaSoft.MvvmLight.Extras.WPF4.dll,GalaSoft.MvvmLight.WPF4.dll,RemObjects.Hydra.dll)

我需要结合所有的DLL并创建一个单独的DLL.

我正在使用ilMerge来组合dll.我正在使用以下命令,

    ilMerge /out:MergedSetup.dll /targetplatform:v4,"C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Profile\Client" 
/lib: TRSetup.dll  Galasoft.MvvmLight.Extras.WPF4.dll Galasoft.MvvmLight.WPF4.dll RemObject.Hydra.dll
Run Code Online (Sandbox Code Playgroud)

我可以创建一个名为MergedSetup.dll的DLL,但在运行时它崩溃了.我该如何合并这些dll.

先感谢您.

c# dll .net-assembly

4
推荐指数
1
解决办法
1345
查看次数

无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一

我找到了一个类似的问题,但没有解决我的问题.

无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载

我只在IIS中收到此错误.我正在尝试部署到IIS 7.5.我将应用程序池设置为4.0,Integrated.

早些时候一切都很好.在我安装了框架4.5 VS 2012 Express后,我得到了一个例外MachineKeyCryptography.所以我卸载了4.5框架和VS 2012,因为这个混乱正在发生.

我得到的例外情况如下.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.BadImageFormatException:无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.

来源错误:

在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.

程序集加载跟踪:以下信息有助于确定无法加载程序集"Antlr3.Runtime"的原因.

警告:装配绑定日志记录已关闭.要启用程序集绑定失败日志记录,请将注册表值[HKLM\Software\Microsoft\Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失.要关闭此功能,请删除注册表值[HKLM\Software\Microsoft\Fusion!EnableLog].

堆栈跟踪:

[BadImageFormatException:无法加载文件或程序集'Antlr3.Runtime'或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.] System.Reflection.Assembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint,StackCrawlMark&stackMark,Boolean throwOnFileNotFound,Boolean forIntrospection)+0
System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,Evidence assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection)+416
System.Reflection.Assembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark&stackMark,Boolean forIntrospection)+166 System.Reflection.Assembly. Load(String assemblyString)+35
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)+190

[ConfigurationErrorsException:无法加载文件或程序集'Antlr3.Runtime'或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.]
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName,Boolean starDirective)+11244040
System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()+388 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+232
System.Web.Configuration.AssemblyInfo.get_AssemblyInternal()+48
System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+210
System.Web.Compilation.BuildProvidersCompiler ..ctor(VirtualPath configPath,Boolean supportLocalization,String outputAssemblyName)+76 System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp)+283
System.Web.Compilation.BuildManager.CompileGlobalAsax()+50
System.Web.Compilation.BuildManager .EnsureTopLevelFilesCompiled()+676

[HttpException(0x80004005):无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()+ 76 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()+1012 System.Web.Hosting .HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters)+1025

[HttpException(0x80004005):无法加载文件或程序集"Antlr3.Runtime"或其依赖项之一.此程序集由比当前加载的运行时更新的运行时构建,无法加载.] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+11338038
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+88 System.Web.HttpRuntime .ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+4356276

.net iis .net-assembly

4
推荐指数
1
解决办法
3万
查看次数

使用数字签名签署强名称程序集是不好的做法吗?

我很好奇,通过谷歌研究,我一直在学习数字签名和强烈命名的程序集.如果您真的努力,似乎可以使用数字签名来签署强名称的程序集.

我推测,通过这种做法,可以通过这种方式使用它来规避数字签名的目的.

微软说:

"强名称本身并不意味着一种信任程度,例如通过数字签名和支持证书提供的信任."
- http://msdn.microsoft.com/en-us/library/wd40t7ad%28v=vs.110%29.aspx

我是否正确地猜测以这种方式使用数字签名实际上是一种不好的做法,这可能会造成安全漏洞并且绝对没有用处?或者甚至可能吗?使用数字签名作为强名称可能或更好然后什么都不做?除了正确使用数字签名之外,它是否提供了额外的安全性.

c# strongname digital-signature .net-assembly

4
推荐指数
1
解决办法
1109
查看次数

ASP.NET Core 5.0错误CS0012:类型'Object'在程序集'mscorlib中定义

在Visual Studio 2015中我有一个kproj,在这个项目中我想添加一个对任何公共nuget包源都没有的程序集的引用,所以我创建了自己的nuget包,这样就可以添加引用到这个集会.

问题是,现在我遇到以下异常:

ASP.NET Core 5.0错误CS0012:类型"对象"在未引用的程序集中定义.您必须添加对程序集'mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用.

关于如何克服这个问题的任何想法?

.net-assembly visual-studio-2015 asp.net-core

4
推荐指数
2
解决办法
7027
查看次数

AssemblyInfo无需加载

有没有办法以编程方式(在C#中)获取程序集信息(名称,描述,版本)而不将类加载到AppDomain?我只需要清单中的信息而不需要其他信息.是Assembly.ReflectionOnlyLoad(..)我需要什么?或者它也加载了类?

例如:我有一个包含文件的字典,我想列出程序集名称,描述和版本.我现在不想使用这些程序集.

c# reflection manifest .net-assembly

4
推荐指数
1
解决办法
780
查看次数

加载后删除装配

我正在尝试使用以下代码加载MSIL程序集:

        string PathOfDll = "PathOfMsILFile (Dll)";
            Assembly SampleAssembly;
            SampleAssembly = Assembly.LoadFrom(PathOfDll);
Run Code Online (Sandbox Code Playgroud)

在该程序的结尾,我应该删除该文件:

            File.Delete(PathOfDll);
Run Code Online (Sandbox Code Playgroud)

它导致错误:'System.UnauthorizedAccessException'

Additional information: Access to the path 'Path' is denied .
Run Code Online (Sandbox Code Playgroud)

它与UAC无关,只是因为我在程序开始时加载程序集,而当我想手动删除它时,它表示该文件正在vshost.exe中使用。所以我说这只是为了表明它是用于组装的!

那么有什么方法可以摆脱它(类似于卸载此程序集)?

注意:我正在编写代码来运行垃圾收集器,但此问题仍未解决。

谢谢。

c# .net-assembly

4
推荐指数
1
解决办法
1230
查看次数

Newtonsoft.Json版本8.0.2无法加载文件或程序集错误

我正在尝试在Web API解决方案中解析类库中的JSON文件.它是一个普通的C#类库,而不是Portable类.

我已经尝试过这里提到的每一个答案,但它仍然不起作用!我一直得到同样的错误:

无法加载文件或程序集'Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)":"Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed

这是代码:

public IList<BranchRM> AllBranches()
{
    var result = new List<BranchRM>();
    var dataSourcePath = AppDomain.CurrentDomain.BaseDirectory + "Data/branches.json";
    var dataAsText = File.ReadAllText(dataSourcePath);
    if (string.IsNullOrEmpty(dataAsText)) return result;
    var branchList = JsonConvert.DeserializeObject<List<Branch>>(dataAsText);
    result = AutoMapper.Mapper.Map<List<BranchRM>>(branchList);
    return result;
}
Run Code Online (Sandbox Code Playgroud)

.net c# json .net-assembly

4
推荐指数
1
解决办法
9426
查看次数

添加对名称和命名空间中包含点的.net程序集的引用

我试图引用在命名空间中有点的程序集.

sys.path.append(assemblyPath)

clr.FindAssembly(r"isc.Eng.Hov")
clr.AddReference(r"isc.Eng.Hov")

print 'isc.Eng.Hov' in clr.ListAssemblies(False)

from isc.Eng.Hov import *
Run Code Online (Sandbox Code Playgroud)

口译员提出错误:

Traceback (most recent call last):
True
  File "/mnt/86f8c6c8-9099-4f32-be68-486a12918546/GoogleDrive/__BACKLOG/RMK_API_LIB/rmkSuppliersDLLswrappers/scr/Hoval/__phex_hoval_dllwrapper.py", line 14, in <module>
    from isc.Eng.Hov import *
ImportError: No module named isc.Eng.Hov
Run Code Online (Sandbox Code Playgroud)

如何排除故障?

.net python .net-assembly python.net

4
推荐指数
1
解决办法
1071
查看次数