Tag: 运行时

是否可以在C#中的运行时创建/执行代码?

我知道您可以使用Emit,System.Reflection和手动创建的IL代码动态创建.NET程序集,如下所示 。 但我想知道是否有可能在正在运行的应用程序中实时动态创建和执行C#代码块。 感谢您的任何意见或想法。 编辑:据我所知,CodeDOM允许您将C#代码编译为EXE文件而不是“只是”执行它。 这里有一些背景信息以及为什么(据我所知)这对我来说不是最好的选择。 我正在创建一个必须执行这么多动态创建的代码的应用程序[用于记录 – 它用于学术研究,而不是真实世界的应用程序,因此无法避免]。 因此,创建/执行数千个动态创建的EXE并不是非常有效。 其次 – 所有动态代码片段都会返回一些难以从单独运行的EXE中读取的数据。 如果我遗失了什么,请告诉我。 至于Jon Skeet指出的DynamicMethod方法,如果有更简单的方法来编写代码本身而不是低级IL代码,那么一切都会像魅力一样。 换句话说 (非常严厉地说)我需要这样的东西: string x = “_some c# code here_”; var result = Exec(x);

未知模块中发生未处理的“System.IO.FileNotFoundException”类型exception

我正在开发ac#应用程序,我在调试运行时遇到以下错误: 未知模块中发生未处理的“System.IO.FileNotFoundException”类型exception。 附加信息:无法加载文件或程序集“Autodesk.Navisworks.Timeliner.dll”或其依赖项之一。 指定的模块无法找到。 Autodesk.Navisworks.Timeliner.dll位于应用程序的debug文件夹中。 我修复了.net框架(版本4)但它没有解决它。 有关如何解决此问题的任何想法? 谢谢。

在C#中更新标签位置?

我有一个返回值的方法,我希望这个值是Windows窗体应用程序中标签的新位置。 但我被告知标签的位置不是变量。 objectA是标签的名称。 objectA.Location.X = (int)A.position; objectA.Refresh(); 我该怎么做呢?

C#如何在运行时转储所有变量和当前值

是否有任何内置或第三方库允许您在运行时简单地将所有变量转储到内存中? 我想要的是能够查看变量和当前值,类似于通过点击断点并将鼠标hover在变量上来查看它们,但实际上不必停止程序执行(即只是获取快照)。 如果它可以将它们转储到一个文件然后可以在程序中打开以获得一个很好的GUI界面来查看它们会很好,但是简单的文本文件转储就足够了。

如果我的软件使用它,我是否必须在每个客户端上安装sql server?

如果我们用c#(或基本上.Net)开发一些软件,我们不会将visual studio安装到任何客户端。 客户端必须安装所需的.Net框架(1.0,1.1,2.0,3.0等),我们很高兴。 同样,如果我们在VC2008中制作应用程序,他只需要具有Visual C ++ 2008运行时(可从MS站点免费获得,大约4-5Mb)。 所以,基本上,我们只需要运行时环境 。 但是没有任何SQL Server 2008运行时(或者我不知道它?)。 所以,我的问题是,如果我的软件使用SQL Server 2008,那么在客户端需要什么运行时(或其他任何东西)才能使用它? 另外,还有一件事,我看到有一个SQL Server Express版本,我可以在部署中使用它,但是看起来有点沉重,知道如果我的软件只有5,10或20Mb我需要安装一个演出只是这样用户可以运行它。 最后,如果我使用的是SQL Server 2008 Developer Edition(我或者是企业版)并且我在客户端上安装了SQL Server Express,如果我的软件使用了某些不支持的function,则不会导致一些问题版? (比如数据库的数量,或并发连接,或任何东西)。 所以? 它需要什么运行时间? 如果安装sql server express是唯一的选择,如果我使用的是Express版本不支持的某些function,该怎么办? 当然,我不能继续在每个客户端上完整安装开发人员版本! 编辑:如果这有任何帮助,我当前的项目是一个图书馆管理系统,它将安装在客户端(图书管理员的计算机,我正在为此制作),所以这里没有服务器客户端的情况。 那我应该在他的电脑上安装sql express吗? 此外,正如YvesR在他的回答中指出的那样,该链接仅显示三个版本(主要版本),但http://msdn.microsoft.com/en-us/library/cc645993%28v=SQL.110%29.aspx显示更详细的比较。 那么,在我刚才描述的这个特定场景中,如果我只是在客户端的机器上部署并表达版本,那就足够了吗? 现在,关于我所说的关于快递版中没有的一些function, http://msdn.microsoft.com/en-us/library/cc645993(v = SQL.110).aspx#CrossBoxScale表明快递版是有限的对于大小为10Gb的数据库,现在我知道在上面描述的场景中已经足够了,但是如果在其他情况下我还需要更多呢? 比快递版本不会这样做,我应该如何部署? 最后, http://www.microsoft.com/sqlserver/en/us/get-sql-server/how-to-buy.aspx显示了另外两个版本,Compact和Developer,我知道开发人员但是这个简洁版是什么? 更重要的是,为什么这些没有被哄骗或列在这里 ? 编辑2:其4Gb,限制,而不是10Gb。 10Gb在SQL Server 2008 R2 Express及更高版本中,在SQL Server 2008 Express中为4Gb。 […]

设置在WinForms应用程序中打开的控制台窗口的位置

我在Rex Logan发布的这个post中发现了一些源代码: 链接文字 … Foredecker在同一个post中也发布了一些非常有趣的代码,但它不完整和复杂:我对’跟踪工具知道如何完全实现它不够了… 我能够在WinForms应用程序中成功发布此控制台代码Rex(友好地),以记录各种事件,并将消息推送到调试中非常有用; 我也可以从应用程序代码中清除它。 我似乎无法做的是在打开控制台窗口时(在主窗体加载事件中)可靠地设置控制台窗口的屏幕位置。 如果我尝试设置WindowLeft或WindowTop属性,我得到编译阻止System.ArgumentOutOfRangeException错误: 必须设置窗口位置,使当前窗口大小适合控制台的缓冲区,并且数字不能为负数。 参数名称:left实际值为# 但是,我可以设置WindowWidth和WindowHeight属性。 我试过移动激活控制台各个位置的代码,包括: 在MainForm运行之前的Program.cs文件中 在MainForm ctor中调用’InitializeComponent()之前和之后 在Form Load事件中 在Form Shown活动中 控制台在代码中的所有这些位置都可以正常激活,但看似随机切换屏幕左上象限的位置没有变化。 控制台窗口打开的位置似乎随机变化(主窗体始终在屏幕上的同一位置初始化)。

在运行时轮询C#app的内存使用情况?

我有一个应用程序,在运行时,需要轮询自己的内存使用情况。 如果它可以列出实例化的每个对象的内存使用情况,那将是理想的。 我知道这可以通过WMI实现,但我希望有一些不依赖于WMI的东西。

简单代码中的运行时错误(NZEC)

在SPOJ上运行以下代码时,我收到运行时错误(NZEC)。 如果你们中的任何人愿意指出发生了什么,我将非常感激。 //0<=A<=B<=10^18, 1<=N<=10^18 using System; class any { static void Main() { long t = long.Parse(Console.ReadLine()); ulong a, b, n; for(long k = 0; k < t; k++) { string[]s = Console.ReadLine().Split(' '); a = ulong.Parse(s[0]); b = ulong.Parse(s[1]); n = ulong.Parse(s[2]); Console.WriteLine(diviEntre2(a, b, n)); } } static ulong diviEntre2(ulong f, ulong c, ulong […]

在运行时添加属性

我有一个程序员可以用来动态添加新属性的类。 为此,它实现了ICustomTypeDescriptor ,以便能够覆盖GetProperties()方法。 public class DynamicProperty { public object Value { get; set; } public Type Type { get; set; } public string Name { get; set; } public Collection Attributes { get; set; } } public class DynamicClass : ICustomTypeDescriptor { // Collection to code add dynamic properties public KeyedCollection Properties { get; private […]

如何调试“无法加载文件或程序集”运行时错误?

我有一个使用IKVM转换的Java库的项目。 我添加了创建的DLL以及所有可能的IKVM DLL作为我的项目的引用,但是当我运行它时,我得到以下运行时错误: System.IO.FileNotFoundException:无法加载文件或程序集’core,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null’或其依赖项之一。 该系统找不到指定的文件。 我不确定如何调试此错误。 有没有办法确切知道缺少哪种类型? 从描述我猜这是生成的DLL(来自Java lib),但我已正确添加它作为参考。 还有什么我做错了?