C#中生成DLL放在指定目录

C# DLL放在指定目录

在编写C# winform程序中,不免一个项目会有多个工程文件,而这些工程文件之间是相互引用的,所以不想将工程的生成结果(exe或者dll)放在当前工程bin目录下的Debug目录或者Release目录,而是放在一个公共的目录下,比如DLLImport目录下,如何实现这个工程呢,

在c#中实现这样的功能:
我们只需在每个工程的“属性”----“生成事件”----“生成后事件命令行”写入如下代码即可:


//假入我们的项目路径

E:\192.168.1.103\prj_2013\Webplus3_Template_Convert\W3TCStart

//第一步:设置生成路径
\bin\Release\Plugin

//第二步:复制需要的文件到想要的目录
IF $(ConfigurationName)==Release xcopy "$(TargetDir)W3TCStart.exe" "$(ProjectDir)\bin\Release\" /s/e/y
IF $(ConfigurationName)==Release xcopy "$(TargetDir)W3TCStart.exe.config" "$(ProjectDir)\bin\Release\" /s/e/y

//删除多余的文件
IF $(ConfigurationName)==Release del "$(TargetDir)W3TCStart.exe"
IF $(ConfigurationName)==Release del "$(TargetDir)W3TCStart.exe.config"

//技巧
1.生成事件里有很多宏定义
2.目录可以写成绝对地址
3.xcopy del 是dos命令,可以使用其他dos命令
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成动态链接库(DLL)的过程大致如下: 1. 打开Visual Studio,创建一个新的DLL项目。 2. 在项目添加所需的代码文件和资源文件。 3. 对代码进行编译和调试,确保没有错误。 4. 在生成选项选择“生成DLL”。 5. 编译并生成DLL文件。 以下是一个简单的C#代码示例,演示如何动态生成DLL: ```csharp using System; using System.CodeDom.Compiler; using System.Reflection; using Microsoft.CSharp; public class GenerateDLL { public static void Main() { CSharpCodeProvider codeProvider = new CSharpCodeProvider(); CompilerParameters parameters = new CompilerParameters(); parameters.GenerateExecutable = false; parameters.OutputAssembly = "MyDLL.dll"; CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, @"public class MyDLLClass { public void MyMethod() { Console.WriteLine(""Hello from MyDLL!""); } }"); if (results.Errors.HasErrors) { Console.WriteLine("Compilation failed."); foreach (CompilerError error in results.Errors) { Console.WriteLine(error.ErrorText); } } else { Assembly assembly = results.CompiledAssembly; Type type = assembly.GetType("MyDLLClass"); object instance = Activator.CreateInstance(type); MethodInfo methodInfo = type.GetMethod("MyMethod"); methodInfo.Invoke(instance, null); } } } ``` 这个示例代码演示了如何使用CSharpCodeProvider类来编译C#代码,并将其生成为一个名为“MyDLL.dll”的动态链接库。然后,程序使用反射来加载并调用DLL的方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值