Tag: 命令行界面

在命令行而不是VisualStudio中从我的EDMX生成C#实体文件

我有一个.edmx文件,当我在VisualStudio中打开它时会生成C#实体文件并点击“保存”操作。 如何从命令行执行此操作? 我想在尝试编译之前设置一个可以执行此操作的CI环境…

差异CLR和CLI以及如何从纯C调用它们

有人可以告诉我CLR和CLI之间的区别在于它的基本function,但最重要的是哪一个更好? 到目前为止,我得到的是使用ICLRRuntimeHost接口不允许我返回除int之外的任何内容,唯一允许的参数是LPCWSTR (请参阅ExecuteInDefaultAppDomain ) 此时我想知道是否可以/将为其C程序中的struct分配内存,将指针作为LPCWSTR string给ExecuteInDefaultAppDomain ,并将此指针转换回另一侧的struct以处理该struct 。 我不知道如何使用这个签名器对每个函数的限制: int fncname(string param); 我看了一下这个教程,但我不明白如何从C程序中调用C ++ / CLI,以及如何返回复杂对象或比int更复杂的东西。 有人可以告诉我如何在C中使用CLI ? 我似乎无法找到一些代码行来展示它是如何工作的。

C#应用程序中的命令行界面

我一直在使用C#进行一些项目,没什么大不了的。 所以我想现在就开始研究一个真正的项目。 我在C#中创建了一个IRC bot。 此IRC bot在命令行中没有GUI运行。 现在当它运行时,它输出每个命令和东西。 我想要做的是在命令行内为应用程序创建一个接口。 这样我就可以在应用程序中输入命令并输出命令的结果。 我已经尝试阅读有关multithreading我的软件的几个主题,因为我相信这是我需要实现此function。 但我不确定。 我已经读过Java中的命令行界面和http://msdn.microsoft.com/en-us/library/aa288457(v=vs.71).aspx这样的线程。 但我仍然非常困惑。 我已经尝试使用谷歌搜索任何工具包,如http://alexis.royer.free.fr/CLI/ 我想就此问题寻求建议,如有可能,请提供有关该计划基础知识的帮助。 如果有人强烈建议我不要在C#中搜索这个function,那么我很乐意听到他/她对于为什么不这样做的意见以及对我应该使用/做什么的建议。 提前谢谢了! 罗伯托。 Ps我对我不正确的英语语法表示歉意。

如何在C#中使用PHP CLI

我来自中国,所以我的英语可能真的很差。 我尽力让你理解我的问题。 我想在我的C#项目中使用PHP CLI。 我试过像这样的代码 Process p = new Process(); p.StartInfo.FileName = “cmd.exe”; p.StartInfo.Arguments = command; p.StartInfo.UseShellExecute = false; p.StartInfo.RedirectStandardInput = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.RedirectStandardError = true; p.StartInfo.CreateNoWindow = true; try { p.Start(); p.StandardInput.WriteLine(command); p.StandardInput.WriteLine(“exit”); p.WaitForExit(1000); StreamReader reader = new StreamReader(p.StandardOutput.BaseStream, Encoding.GetEncoding(“utf-8”)); string text= reader.ReadToEnd(); if (text.IndexOf(command) != -1) { int start = text.IndexOf(command) […]

通过CLI将fstream(或等效的)从C#传递到C ++

如何将C#中的fstream或等效项通过CLI传递给非托管C ++ DLL? 粗略的应用大纲: C#应用程序从数据库中读取二进制文件 非托管C ++ dll用于“解码”此文件并返回其中包含的信息 我可以修改任何C#代码。 CLI包装器是我可以修改的C ++端的唯一部分。 我目前正在将二进制文件保存到磁盘并将其路径传递给CLI包装器,在那里它作为fstream打开。 这适用于测试目的,但由于显而易见的原因不适用于生产。 我还研究了将一个字节数组传递给DLL,但我无法找到将其转换为除了GlobalAlloc以外的其他fstream的方法,我不想使用它。 任何帮助或想法将不胜感激。 谢谢。

将HWND转换为IntPtr(CLI)

我的C ++ MFC代码中有一个HWND,我想将这个HWND传递给C#控件并将其作为IntPtr。 我的代码有什么问题,我该怎么做才能正确? (我认为这是使用CLI指针的错误,因为我得到一个错误,它无法从System :: IntPtr ^转换为System :: IntPtr。但我不知道如何让它完全正常工作。 ..) 我的C ++ MFC代码: HWND myHandle= this->GetSafeHwnd(); m_CLIDialog->UpdateHandle(myHandle); 我的C#代码: public void UpdateHandle(IntPtr mHandle) { …… } 我的CLI代码: void CLIDialog::UpdateHandle(HWND hWnd) { System::IntPtr^ managedhWnd = gcnew System::IntPtr(); HWND phWnd; // object on the native heap try { phWnd = (HWND)managedhWnd->ToPointer(); *phWnd = *hWnd; //Deep-Copy the Native […]

Common Language Runtime检测到无效程序?

我在程序中不断重复此错误。 我尝试过以下方法: 重新启动Visual Studio 清洁和重建解决方案 当我逐行遍历代码时,它会停止让我在方法调用中完全糊涂: GenerateWorksheetPart1Content(WorksheetPart worksheetPart1) 我不明白为什么它会停在那里。 该参数在该点不为空。 可能导致错误的原因是什么?

如何在C#应用程序中使用C ++ / CLI

我试图从我的C#应用​​程序(通过C ++ / CLI)调用我的C ++库。 我按照这个问题的例子(针对我的具体应用)。 我的应用程序的设置是: Project1:C ++项目(我将其编译为DLL) Project2:C ++项目(我的CLR包装器;只是上面示例中的头文件;引用Project1) Project3:C#项目(参考Project2) 不幸的是,当我真的去访问我的C#应用​​程序中的CLR包装器对象时,我收到以下错误: 找不到类型或命名空间名称’YourClass’(您是否缺少using指令或程序集引用?) 我是否错误地设置了项目,或者是否还有其他我需要研究的内容? (不幸的是,我不能出于专有原因发布代码,但这是一个非常简单的代码,很容易遵循上面的例子。) 更新: 所以我完全按照Chris的说法做了(请参阅下面的答案),但我仍然收到来自我的C#应用​​程序的消息“找不到类型或命名空间名称’MyProgram’(您是否缺少using指令或程序集)参考?)。这是我的代码的(模拟)。 Project1 – 这是我的C ++应用程序。 它编译/工作。 我在其他地方用过它。 (我从这个版本中获取了一个DLL。) Project2 – 这是我的包装器的代码。 MyWrapper.h #pragma once #include “myorigapp.h” using namespace System; namespace MyProgram { public ref class MyWrapper { private: myorigapp* NativePtr; public: MyWrapper() { NativePtr = new myorigapp(); } […]

有没有办法在.NET Core中只使用一个文件来运行控制台应用程序?

在.NET框架中,您可以创建一个将从命令行运行的.EXE文件,而无需任何额外的配置文件(如果使用ILMerge,则可以将所有.DLL引用放入1 .EXE程序集中)。 我正在尝试使用.NET Core来完成同样的事情,但到目前为止还没有成功。 即使是最简单的没有依赖项的Hello World应用程序,也需要有一个名为.runtimeconfig.json的文件才能使用dotnet.exe运行。 dotnet F:\temp\MyApp.dll .runtimeconfig.json的内容如下: { “runtimeOptions”: { “framework”: { “name”: “Microsoft.NETCore.App”, “version”: “1.1.1” } } } 如果没有此配置文件与.DLL在同一文件夹中,我会收到以下错误: A fatal error was encountered. The library ‘hostpolicy.dll’ required to execute the application was not found in ‘F:\temp’. 我的问题是:有没有办法改变应用程序,所以它不需要这个配置文件存在,所以这些信息的默认值是在.DLL中编译但可以通过添加配置文件来覆盖? 注意:如果平台具有正确版本的.NET Core,我还要确保它“正常工作”而不管它上面安装的平台。 背景 我试图获得一个流畅的用户体验,运行一些有时很有用的实用程序,但很少需要。 由于似乎不可能使用从客户端应用程序作为控制台应用程序引用的相同.DLL ,因此下一个最好的方法是拥有一个可以在没有任何依赖性的情况下下载和运行的文件 。 例如,在Java中,您只需在任何支持的平台上下载.jar文件并运行: java .jar .SomeClass [args] 并且它将“正常工作”而没有任何额外的文件。 如何使用.NET […]

C#/ CLI标识符的最大长度是多少?

名称还有哪些其他限制(除了范围内明显的唯一性)? 那些定义在哪里?