Tag: console application

如何将控制台应用程序窗口设置为最顶层的窗口(C#)?

如何将控制台应用程序设置为最顶层的窗口。 我正在使用.NET构建控制台应用程序(我正在使用C#,甚至可以对非托管代码进行pinvokes)。 我以为我可以让我的控制台应用程序派生自Form类 class MyConsoleApp : Form { public MyConsoleApp() { this.TopLevel = true; this.TopMost = true; this.CenterToScreen(); } public void DoSomething() { //…. } public static void Main() { MyConsoleApp consoleApp = new MyConsoleApp(); consoleApp.DoSomething(); } } 但是这不起作用。 我不确定Windows窗体上设置的属性是否适用于控制台UI。

使用用户名和密码进行模拟?

WindowsIdentity identity = new WindowsIdentity(accessToken); WindowsImpersonationContext context = identity.Impersonate(); … context.Undo(); 我在哪里声明一个administraotr UserName和Passowrd? accessToken参数对我帮助不大…… 我必须为它导入DLL吗?

在New AppDomain中加载程序集而不将其加载到Parent AppDomain中

我试图将一个DLL加载到控制台应用程序,然后卸载它并完全删除该文件。 我遇到的问题是,在自己的AppDomain中加载dll的行为会在Parent AppDomain中创建一个引用,因此不允许我销毁dll文件,除非我完全关闭程序。 有关使此代码有效的任何想法? string fileLocation = @”C:\Collector.dll”; AppDomain domain = AppDomain.CreateDomain(fileLocation); domain.Load(@”Services.Collector”); AppDomain.Unload(domain); 顺便说一下,我也尝试过这段代码而且没有运气 string fileLocation = @”C:\Collector.dll”; byte[] assemblyFileBuffer = File.ReadAllBytes(fileLocation); AppDomainSetup domainSetup = new AppDomainSetup(); domainSetup.ApplicationBase = Environment.CurrentDirectory; domainSetup.ShadowCopyFiles = “true”; domainSetup.CachePath = Environment.CurrentDirectory; AppDomain tempAppDomain = AppDomain.CreateDomain(“Services.Collector”, AppDomain.CurrentDomain.Evidence, domainSetup); //Load up the temp assembly and do stuff Assembly projectAssembly = tempAppDomain.Load(assemblyFileBuffer); […]

entity framework6.1.1禁用模型兼容性检查

将EF更新到版本6.1.1后,我遇到以下错误: EntityFramework.dll中发生了未处理的“System.InvalidOperationException”类型exception 附加信息:自创建数据库以来,支持TvstContext上下文的模型已更改。 请考虑使用“代码优先迁移”来更新数据库( http://go.microsoft.com/fwlink/?LinkId=238269 )。 我们可以在这个问题中描述过去解决这个问题: EF CTP5中的modelBuilder.IncludeMetadataInDatabase在哪里? 但是,我似乎无法摆脱错误。

在已运行的控制台应用程序内运行交互式进程,无需打开新窗口

我意识到这看起来像很多其他问题,但我看了几个小时都没看过,我从未找到我需要的真正答案,所以请听我说: 这适用于.NET C#控制台应用程序。 在其中,我想使用Process.Start调用Windows可执行文件,但是在运行时没有打开新的控制台窗口 。 我还希望可执行文件能够输出到控制台并正常响应用户输入。 你怎么做到这一点? 设置ProcessStartInfo.CreateNoWindow或ProcessStartInfo.WindowStyle ? 尝试使输入/输出重定向工作数小时? 编辑: smh ……这与那里的“可能的重复”不同,因为: 这适用于想要在自身内无缝运行Windows命令的控制台应用程序,就好像该命令是控制台应用程序本身的一部分一样。 例如:创建一个新的C#控制台应用程序并使其运行Windows copy命令。 另外,我需要用户能够与正在运行的命令交互 (例如,如果copy询问是否覆盖我希望用户回答),那么隐藏窗口就像这样 ,或者这个可能的答案是禁止的。 我想强调单个 UseShellExecute属性如何解决问题,在这样的答案中没有误导性的绒毛(例如,关于I / O重定向),或者这再次让我浪费时间。

控制台应用程序中的FileVersionInfo.GetVersionInfo()不正确

我使用FileVersionInfo.GetVersionInfo()得到了一些严重的怪异,并希望有人可以提供帮助。 问题的基础是我正在遍历每个文件夹中调用GetVersionInfo()的所有文件。 大约有300个文件。 这适用于除2个文件之外的所有文件。 对于这些DLL,我从GetVersionInfo()得到了完全不正确的信息。 为了消除所有其他变量,我将此调用提取到一个简单的测试应用程序中,它仍然遇到了同样的问题。 但是,如果我将测试应用程序构建为Windows应用程序(最初是控制台应用程序),那么数据会恢复正常。 只是为了澄清一下,当作为控制台应用程序运行时返回的不正确数据不仅仅是如果文件不包含版本数据就会得到的空信息。 它包含合理的数据,但只包含错误的数据。 就好像是从不同的文件中读取它一样。 我找了一个包含匹配版本数据的文件,但找不到。 如果构建为控制台应用程序而不是Windows应用程序,为什么这个简单的调用function会不同? 如果有人可以帮助我,我将非常感激。 安德,安迪 – 已添加代码 using System; using System.Diagnostics; namespace test { class Program { static void Main(string[] args) { string file = “C:\\ProblemFile.dll”; FileVersionInfo version = FileVersionInfo.GetVersionInfo(file); string fileName = version.FileName; string fileVersion = version.FileVersion; Console.WriteLine(string.Format(“{0} : {1}”, fileName, fileVersion)); } } }

如何从资源文件中获取流对象(控制台应用程序/ Windows服务项目)

我正在创建一个Windows服务,我正在尝试访问我添加到资源文件中的一些文件,但我被卡住了,因为我不知道如何访问单个文件。 仅仅为了一些背景信息,这是我到目前为止所做的: 这是一个在调试模式下作为控制台应用程序运行的C#Windows服务应用程序,它可以帮助我进入代码。 我在根目录中添加了一个名为“Resources.resx”的资源文件。 在我的资源文件中,我使用可视化设计器/编辑器添加了一些jpg图像和html文件。 在我将图像和html文件添加到资源文件后,我项目中的一个新文件夹显示为“Resources”,其中包含我添加的所有文件。 在这个新文件夹中,我转到了每个文件的属性,并将Build Action更改为Embedded Resource。 (我不知道这是否有必要。我搜索的一些博客说要试试。) 项目的名称空间称为“MicroSecurity.EmailService”。 为了获取资源文件的名称,我使用了 的GetType()。Assembly.GetManifestResourceNames() 我得到以下内容 GetType()。Assembly.GetManifestResourceNames(){string [2]} string [] [0]“MicroSecurity.EmailService.Services.EmailService.resources”string [1]“MicroSecurity.EmailService.Resources.resources”string 从此我发现“MicroSecurity.EmailService.Resources.resources”是我想要使用的字符串(索引1)。 我使用此代码来获取流对象。 var stream = Assembly.GetExecutingAssembly()。GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources”); 当我在调试期间向此变量添加监视时,我可以看到诸如图像的元数据之类的内容等。 这是我被困的地方。 我想访问名为“logo.jpg”的图像。 这是我正在做的图像,但它不起作用。 var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(“MicroSecurity.EmailService.Resources.resources.logo.jpg”); 如何从logo.jpg文件中获取流? 更新: 感谢安德鲁,我能够弄清楚。 下面是我为演示项目编写的一些代码,以便研究资源文件如何工作而不是直接嵌入文件。 我希望这有助于其他人澄清差异。 using System; using System.Drawing; using System.IO; using System.Reflection; namespace UsingResourceFiles { public class Program { /// […]

从控制台应用程序重新打开WPF窗口

我想从Console应用程序打开一个WPF窗口。 在提到这篇文章后 ,它运作正常。 问题是:当用户关闭WPF窗口(手动)时,不能再从控制台重新打开它,抛出exception消息:“无法在同一AppDomain中创建多个System.Windows.Application实例。” 这是代码: class Program { static void Main(string[] args) { string input=null; while ((input = Console.ReadLine()) == “y”) { //Works fine at the first iteration, //But failed at the second iteration. StartWpfThread(); } } private static void OpenWindow() { //Exception(Cannot create more than one System.Windows.Application instance in the same AppDomain.) //is thrown […]

使用IProgress.Report()报告进度时,控制台消息显示的顺序不正确

我注意到了以下行为。 IProgress填充控制台输出消息时,它们会显示在错误的文件夹中。 var recounter = new IdRecounter(filePath, new Progress(Console.WriteLine)); recounter.RecalculateIds(); 我正在努力提高我的封装,可重用性和设计技巧。 所以,我有一个名为IdRecounter的类。 我现在想在控制台应用程序中使用它,但稍后可能在WPF应用程序中使用它。 因此,我希望class级完全不知道它的环境 – 但同时我想报告“现场”行动的进展 – 因此,我使用IProgress类型,这将允许我将东西放入控制台,或者进入日志文件,或更新状态标签属性等。(如果不是这样的话,请告诉我) 所以,我注意到它倾向于以不正确的顺序将消息抛出到控制台中,例如处理文件1 处理文件4 处理文件5 处理文件3 全部完成! 处理文件2 当我用Console.WriteLine()切换IProgress( MyProgress.Report() )时,它按预期工作。 这是什么原因以及如何控制? 谢谢

方法“X.set_DbConnection(System.Data.Common.DbConnection)”错误尝试访问方法“Y.get_Settings()”失败

我创建了一个控制台应用程序并使用EntityFramework 6.2(用于与MS SQL连接),MySql.Data 8.0.11和MySql.Data.Entity 6.10.7(用于与MySQL连接)。 在这个应用程序中,我想创建一个类似SQL作业的作业,但我不想使用quertz.net。 我有错误: “尝试通过方法’MySql.Data.Entity.EFMySqlCommand.set_DbConnection(System.Data.Common.DbConnection)’来访问方法’MySql.Data.MySqlClient.MySqlConnection.get_Settings()’失败。”