Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将C控制台应用程序转换为DLL_C#_.net_Dll_Console Application - Fatal编程技术网

C# 将C控制台应用程序转换为DLL

C# 将C控制台应用程序转换为DLL,c#,.net,dll,console-application,C#,.net,Dll,Console Application,我正在将Betfair API从SOAP重写为JSON,我开始使用以前的方式作为控制台应用程序,然后从任务调度器或win服务调用它 然而,现在我被要求用代码做各种不同的工作,我不想为每项工作编写一个控制台应用程序——不同的网站想要价格、下注等等 新的代码库比旧的代码库大得多,我本来可以将4个文件从旧系统复制到一个DLL应用程序中,然后创建各种控制台应用程序/服务来实现DLL-但是,因为它有40多个文件,如果可能的话,我不想要复制粘贴作业 有没有一种方法可以使用VS中的一些工具或命令轻松地将现有控

我正在将Betfair API从SOAP重写为JSON,我开始使用以前的方式作为控制台应用程序,然后从任务调度器或win服务调用它

然而,现在我被要求用代码做各种不同的工作,我不想为每项工作编写一个控制台应用程序——不同的网站想要价格、下注等等

新的代码库比旧的代码库大得多,我本来可以将4个文件从旧系统复制到一个DLL应用程序中,然后创建各种控制台应用程序/服务来实现DLL-但是,因为它有40多个文件,如果可能的话,我不想要复制粘贴作业

有没有一种方法可以使用VS中的一些工具或命令轻松地将现有控制台项目转换为类/DLL项目

我希望能够创建简单的应用程序

BetfairBOT myBOT = new BetfairBOT()
myBOT.RunGetPrices();

e、 g 2/3行代码,用于实现已注册到我的应用程序的DLL

因此,没有复制和粘贴,我可以做到这一点

如果需要,我使用VS 2012、.NET 4.5或4.0,具体取决于服务器Windows 8.1

任何帮助都将不胜感激。

此答案来自。虽然它使用winforms而不是控制台应用程序,但我认为您将能够使用它

创建DLL的步骤

步骤1:-文件->新建->项目->Visual C项目->类库。选择项目名称和相应的目录,然后单击“确定”

单击“确定”按钮后,解决方案资源管理器将添加一个C类“Class1.cs”。在这个类中,我们可以编写代码

当我们双击Class1.cs时,我们会看到一个创建DLL的命名空间。我们将在项目中使用这个名称空间来访问这个类库

步骤2:-在Class1.cs中,我们创建了一个名为“sum”的方法,该方法接受两个整数的值,并将sum返回给witch方法传递的数字

using System;

namespace CreatingDLL
{
    public class Class1
    {
        /// <summary>
        /// sum is method that take two integer value and return that sum
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public int sum(int x, int y)
        {
            return x + y;
        }
    }
}
步骤8:-现在构建应用程序并执行项目,然后查看输出

编辑:要将应用程序更改为库,请执行以下步骤

首先,双击解决方案资源管理器窗口内的属性

然后,在打开的页面上,将输出类型从控制台应用程序更改为类库


在解决方案资源管理器中选择项目。。。右键单击并选择属性。。。选择应用程序选项卡。。。。输出类型下拉列表中列出了什么?是否已启用?嗨,是,列出了控制台应用程序。还有Windows应用程序和类库。如果我只是把它改成类库,那就行了。然后我只需要删除带有mainstring[]args等的程序类,当编译为EXE时它将是一个DLL?不确定VS2012将做什么。。。后退一步,让它旋转一下。。。afaik它只会将存储在.csprojXML文件中的输出类型定义更改为GUID和一些模板基础。。。作为类库,它应该编译成dll。。不是,嗯?哈哈,是的,对不起。仅用于windows应用程序和控制台应用程序。如果这不起作用,那么这是创建一个新项目,然后手工复制一个又一个类的唯一方法,还是有一种自动化的方法?Tools etcI认为您可以只更改输出类型,但即使您不能,如果您的控制台应用程序是使用内部业务类编写的,您也可以在解决方案资源管理器中拖放文件并修复名称空间。嗨,Scott,我明天有空时会尝试一下。看起来不错,为所有截图干杯。谢谢你,你从来没有告诉过我,我如何可以复制200多个类到这个新项目中,而无需复制粘贴作业?我真的不想手工做。我能把整个项目复制到新课上吗project@MonkeyMagix我编辑我的答案是为了向你展示如何将一个应用程序更改为库。因此,只需进行一次更改,即可复制所有文件或将其重新分配给新的应用程序-酷。Thanks@MonkeyMagix如果答案对您有用,请单击答案旁边的复选标记。
using System;

namespace CreatingDLL
{
    public class Class1
    {
        /// <summary>
        /// sum is method that take two integer value and return that sum
        /// </summary>
        /// <param name="x"></param>
        /// <param name="y"></param>
        /// <returns></returns>
        public int sum(int x, int y)
        {
            return x + y;
        }
    }
}
using System;
using System.Windows.Forms;

using CreatingDLL;

namespace AccessingDLL
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            Class1 c1 = new Class1();
            try
            {
                txtResult.Text = Convert.ToString(c1.sum(Convert.ToInt32(txtNumber1.Text), Convert.ToInt32(txtNumber2.Text)));
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}