Tag: .net assembly

有人可以向我解释汇编类的function吗?

我想在运行时加载和创建程序集,有人告诉我使用命名空间System.Reflection.Assembly和System.Reflection.Emit。 我在msdn上找到的只有参考资料,但是当你不知道在哪里以及如何开始时,它不适合使用它。 我已经谷歌搜索,但我没有找到任何有用的教程/样本/参考。 有人可以向我解释function或给我一些示例/教程吗?

你怎么知道你的c#应用程序使用的是哪个dll?

我有一个使用.dll的应用程序,它在位置x中充满了gui应用程序代码。 它用来有1个按钮,但现在有2个。 当我启动我的应用程序时,我期望看到的是一个带有2个按钮的gui,但是我看到一个带有1个按钮的gui。 我已经重建了我的gui .dll,但它神奇地使用了某个地方的旧版本。 如果我尝试调试我的代码,它说我使用的代码版本与.dll中的代码版本不同 我的问题是,“我怎样才能找到它在哪里寻找.dll以及为什么它会使用旧版本,因为我只有一个地方我将.dll编译成?” 还想说明我已经引用它,它是正确的版本,其中有2个按钮..但是当我运行它是使用另一个版本???

从android_assets文件夹动态加载dll

当它在资产文件夹中时,是否可以使用Assembly.Load加载一个dll? 我有windows和android平台特定的dll。 我尝试使用android特定的dll作为资产(也在构建操作中),但是当我尝试将其加载到我的应用程序时,它找不到(我使用了path: file:///android_asset/mydll.dll ),并且这只会发生,如果我构建应用程序作为发布,在调试中我获得加载库的必要路径,但不是从资源文件夹。 我能做什么? 还有另一个地方,我可以从我的应用程序加载我的DLL吗?

如何从嵌入式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如何确定它的值?

‘/’应用程序中的服务器错误。 System.Web.Http.WebHost

我正在尝试发布ASP.NET MVC 4 Internet应用程序。 发布后,我继续点击我网站的链接,找到: ‘/’应用程序中的服务器错误。 无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 描述:执行当前Web请求期间发生未处理的exception。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。 exception详细信息: System.IO.FileNotFoundException:无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35’或其依赖项之一。 该系统找不到指定的文件。 来源错误: 在执行当前Web请求期间生成了未处理的exception。 可以使用下面的exception堆栈跟踪来识别有关exception的起源和位置的信息。 程序集加载跟踪:以下信息有助于确定无法加载程序集“System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”的原因。 警告:assembly绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1.注意:程序集绑定失败日志记录会导致一些性能损失。 要关闭此function,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。 堆栈跟踪: [FileNotFoundException:无法加载文件或程序集’System.Web.Http,Version = 4.0.0.0,Culture = […]

无法将程序集安装到缓存中?

我试图在Visual Studio 2010命令提示符上向缓存添加程序集。 我收到此错误“将程序集添加到缓存失败:尝试安装没有强名称的程序集”。 我从名为ListTasks2的WCF服务应用程序添加ListTasks2.dll程序集。 我从来没有遇到类似名称的项目,所以为什么现在提出一个问题呢? 注意:我尝试在Visual Studio中签名它仍然无法正常工作。 我想知道这可能是一个许可问题。 我使用了不同的用户凭据,并且能够添加程序集。 问题是我加载了VS解决方案,该项目签署了程序集。 我应该创建一个密钥对吗?

Assembly.LoadFrom是否保持打开文件句柄?

我正在使用加载另一个程序集 Assembly.LoadFrom(“path.exe”); 之后我似乎无法从文件系统中删除该exe。 所以我想知道这条路径是否保持打开文件句柄以及如何关闭它?

MEF,为什么创建同一个导出插件的相同副本?

(1)使用下面的代码我在我的容器中得到了两个相同的导出插件,我想知道为什么: (2)我真正无法实现的其他问题:如何扩展框架以处理不同的插件类型(例如,有多个不同类型的导入,或者一个导入将所有插件存储在动态IEnumerable中)。 我想在我的静态包装类中提供一个generics方法,该方法将发现的插件作为类型和匹配元数据的函数返回。 导出的插件(位于单独的dll中,其位置在构建DirectoryCatalog时指向。 [Export(typeof(IPlugin))] //<—- If this line is commented out then only one item is imported (why?) [PluginAttribute(typeof(StrategyPlugin_Test1), "StrategyPlugin", "Plugin1")] public class StrategyPlugin_Test1 : IPlugin { public void DoSomething() { Console.WriteLine("I do something"); } } 以下代码定义了强类型元数据和导入,以及执行MEF函数并应该保存已发现插件的静态类: [MetadataAttribute] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false)] public class PluginAttribute : ExportAttribute { public Type PluginType { get; set; […]

无法加载文件或程序集Microsoft.Win32.Primitives,Version = 4.0.0.0

我在运行我的Web应用程序时遇到问题。 项目设置是ASP.NET Core Web应用程序(.NET Framework)。 我似乎没有得到任何Build错误。 该项目不仅仅是运行。 System.IO.FileLoadException:’无法加载文件或程序集’Microsoft.Win32.Primitives,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (来自HRESULT的exception:0x80131040)’

使用星号时导致Assembly Version递增的原因是什么?

如果我有一个汇编版本,例如: [assembly: AssemblyVersion(“2013.7.18.*”)] 读取此版本号时,它将类似于2013.7.18.123 。 导致最终数字增加的原因是什么?