Tag: .net assembly

如何以编程方式检查C ++ DLL文件和C#DLL文件以获取对调试DLLS的引用,以自动执行测试过程

我遇到过这个问题太多次了,需要这个是一个自动化的方法: 我有多个DLL文件,这些文件经常被多个项目使用而构建/更改。 我创建了一个C#应用程序来检测DLL文件是否存在,并警告操作员是否存在并杀死程序。 在这个C#应用程序中,我希望它也检查以确定它是否是“调试”版本 – 换句话说,如果它在最终用户计算机上运行它会崩溃。 现在我一直在寻找高低,并找到了一些可能的解决方案,但它们都落空了。 Assembly.LoadFrom(string)不适用于非托管代码。 我可以使用它来测试托管DLL文件,但不测试C ++文件。 我想我可以使用Dependency Walker或类似的程序在我的应用程序中运行,以便为我提供程序集引用的数据,不幸的是, depends.exe控制台只输出到一个文件(然后我必须在每个文件中读取)文件和解析它为我的数据(非常密集加上我必须在我的项目中包括depends.exe和DLL文件)),此外,它似乎没有输出我真正想要的数据(或至少我不是能够做到)。 还尝试了dumpbin ,但我似乎无法让它在我的机器上运行。 我还发现了一些应该给我Dependency Walker源代码的链接。 不幸的是他们都死了。 我不认为这是一件难以做到的事情,但无论出于何种原因,我都很难弄清楚如何实现自动化。 一些对我有帮助的源链接,但没有一个解决了非托管程序集数据的问题。 列出引用的程序集 如何自动化集成测试? (堆栈溢出) 确定.NET程序集是否已编译为debug 如何判断.NET程序集是调试还是发布 以编程方式检测发布/调试模式(.NET) (堆栈溢出) 如何检测应用程序所需的DLL? (堆栈溢出) 如何以编程方式检测程序集是否在调试或释放模式下编译

Hololens Build Failing – 命令AssemblyConverter.exe退出,代码为1

更新到VS 2017(版本15.3.2)的最新版本后,我从Unity生成的Hololens版本仍然没有收到此消息: 命令“”C:\ TestFile \ HoloBuild \ VSApp \ Unity \ Tools \ AssemblyConverter.exe“-platform = uap -lock =”C:\ TestFile \ HoloBuild \ VSApp \ HoloBuild \ project.lock.json“-bits = 32 -configuration = Debug -removeDebuggableAttribute = False -uwpsdk = 10.0.15063.0 -path =“。” – path =“C:\ Program Files \ Unity \ Editor \ Data \ PlaybackEngines \ MetroSupport […]

通过COM从32位应用程序调用x64程序集

简短的问题:是否可能(当然是在x64操作系统上)? 如果不是,为什么呢? 我为excel 32开发了ac#plugin dll。 在x86中编译时,它工作正常。 在x64中编译时,COM调用失败。 我需要64位版本的Excel吗? 我认为COM不可能编译架构,并且可以在不同技术和不同架构下开发的dll之间进行通信,但我猜后者是错误的。 我猜一个x64位dll显然不能通过COM(或其他)从32位应用程序调用。

如何在vs2012中添加对程序集的引用

我需要有关如何在C#代码中正确添加程序集的帮助。 我启动一个空白项目并尝试运行下面的简单代码。 但是引用了错误。 我知道默认情况下system.dll包含在references文件夹下。 那为什么还要抱怨“’System.Configuration没有被引用’?” 我错过了一些手动步骤吗? 如果是这样我该怎么办? using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Configuration; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { HttpWebRequestElement ae = new HttpWebRequestElement(); ae.UseUnsafeHeaderParsing = false; } } } 类型’System.Configuration.ConfigurationElement’在未引用的程序集中定义。 您必须添加对程序集’System.Configuration,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a’的引用。 谢谢你的帮助

将程序集安装到GAC中

我尝试使用new System.EnterpriseServices.Internal.Publish().GACInstall(“Foo.dll”);在GAC中安装程序集new System.EnterpriseServices.Internal.Publish().GACInstall(“Foo.dll”); 但我找不到安装在c:\ windows \ assembly \ gac_msil文件夹中。 我也没有收到securityexception。 谁能帮我

使用C#exe修改不同C#exe的资源

解决了! 见下文。 我有2个C#应用程序。 应用程序a应该修改应用程序b的内部资源。 应用程序b应该在执行时对其(修改的)资源执行某些操作。 我怎么能做到这一点? 这是我尝试过的: public static void addFileToResources(string dest, string src) { Assembly a_dest = Assembly.LoadFile(dest); using (Stream s_dest = a_dest.GetManifestResourceStream(“Elevator.Properties.Resources.resources”)) { using (ResourceWriter rw = new ResourceWriter(s_dest)) { byte[] b_src = File.ReadAllBytes(src); rw.AddResource(“target”, b_src); } } } 我得到一个System.ArgumentException , The stream is readonly. on System.Resources.ResourceWriter..ctor(Stream stream) 编辑 因为.net资源似乎无法做到这一点:还有其他办法吗? 我想生成一个可执行的单个文件(即应用程序b的exe),它可以处理从应用程序a执行之前给出的数据(存储在exe中)。 优选地,无需实际编译b以便为其提供数据。 为了使它更容易一些假设: […]

添加对项目未直接使用的程序集的引用是否正确?

我有一个由3个项目组成的解决方案。 一个包含我的edmx图的Entity框架 一个是我的核心业务 和一个我的网络应用程序 当我在服务器或托管服务上发布我的代码时,我收到此运行时错误: {“无法加载文件或程序集’EntityFramework,Version = 4.4.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089’或其中一个依赖项。系统找不到指定的文件。”:“EntityFramework,Version = 4.4.0.0, Culture = neutral,PublicKeyToken = b77a5c561934e089“} 我收到此错误,因为我的entity framework程序集未发布。 我的服务器上缺少entity frameworkdll文件。 我知道为什么。 我没有在我的Web应用程序项目中引用它,因为此项目中不需要此程序集。 在我的另外两个项目中引用了该程序集。 我可以通过在我的Web应用程序中添加entity framework引用来轻松解决我的问题。 我能这样做吗? 是的,但添加对项目不直接使用的程序集的引用是否很好? 我能做什么? 更多信息 一个用于entity framework :参考entity framework 一个用于我的核心业务 :参考entity framework,因为我在这里操纵我的实体 还有一个用于我的网络应用程序 :网站,它就像UI和核心业务之间的外观。 我这里没有引用或使用entity framework。 我没有任何编译错误>我只有一个运行时错误,因为我的entity framework没有发布。 在这种情况下的Windows应用程序中,我没有在项目中引用我的dll,但我使用post build动作复制它。 我不知道在我需要发布或部署的Web应用程序中该怎么做。

BadImageFormatException无法加载文件或程序集或其依赖项之一。 尝试加载格式不正确的程序

我的控制台应用程序(VS2012)引用了“dcasdk.dll”,我遇到了运行时错误。 控制台应用程序的.Net Framework是4.5,平台目标是“任何CPU”。 Could not load file or assembly ‘dcasdk, Version=1.0.1.0, Culture=neutral, PublicKeyToken=null’ or one of its dependencies. An attempt was made to load a program with an incorrect format. 我使用CorFlags应用程序来检查dll的目标平台。 以下是详细信息.. Version : v4.0.30319 CLR Header : 2.5 PE : PE32 CorFlags : 16 ILONLY : 0 32BIT : 0 Signed : 0 根据上面的信息,我认为dll也是使用“Any […]

关闭警告CS1607

我有一个常见的汇编文件,我试图关闭警告: 警告CS1607:程序集生成 – 为“文件版本”指定的版本“2.0.4.121106”不是正常的“major.minor.build.revision”格式 我这样做了但是没有用: #pragma warning disable 1607 [assembly: AssemblyVersion(“2.0.*”)] [assembly: AssemblyFileVersion(“2.0.4.121106”)] [assembly: AssemblyInformationalVersion(“2.0.0.0”)] #pragma warning restore 1607 那么在代码中有一些方法可以做到这一点吗?

加载此程序集将从其他实例生成不同的授权集

我在运行时收到以下错误“从ASP.net 2.0网站调用vb.net 1.1程序集时,加载此程序集将从其他实例生成不同的授权集”。 知道这个错误背后的原因是什么? 场景是: 有一个Web应用程序在ASP.NET 2.0中构建为WebSite。 这个网站上的网页加载了一个2.0 vb.net程序集,用于加载1.1 vb.net程序集。 在加载1.1 dll的程序集时,代码在运行时失败。 请帮忙。