哥们!
C#没这样方法除非你手工搞
一个工程一个 dll 你是要给你分成两个 dll?C# 一般把一些功能相近的类放到一个dll里。
如果你真的想 那么样 必须一个 工程建立一个 工程!
默认情况下dll都必须在 调用他们的exe 在一个目录里否则出错
如果想分目录可以这么做
如你有一些系统调用的dll(SysShellA.dll,SysShellB.dll) 在exe所在目录建立一个 [SystemShell]目录
然后再 exe(如:Test.exe) 的工程立新加一个叫 App.Config 的文件 加入如下文本<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        
            <probing privatePath="SystemShell;"/>        </assemblyBinding>
</runtime>
</configuration>
打开 Test.exe 的工程把选择引用的 SysShellA.dll,SysShellB.dll 把“复制本地”改为false
编译工程会在 Test.exe 附近生成一个 Test.exe.config
这是copy 两个 SysShellA.dll,SysShellB.dll 到 SystemShell
运行 Test.exe .net 环境即可对 Test.Exe 需要的dll 在你配置的路径里寻找
最终目录形势

|Test.exe
|Test.exe.config
|[SystemShell]
|SysShellA.dll,SysShellB.dll当然还可以定制其他目录
 <probing privatePath="SystemShell;LIB;SystemShell\Win"/>
注意必须在Exe 所在的相对里面的位置
不可以用
绝对路径和 [..\..\DirName ] 这种用配置文件的好处很多的
如你程序调用的一个 dll 是一点零版本的
可以
<probing privatePath="SystemShell;LIB;SystemShell\Win10"/>

2.0 时可以改
<probing privatePath="SystemShell;LIB;SystemShell\Win20"/>
如果感觉这个2.0版本的dll 不好用还可以换回去
这样很容易在各个版本的程序间切换的。在如过你的程序是一个可以跨平台的程序却用到了一些 平台 api 什么的 那你可以写两个相同名字的 dll 如都叫 
SysShell.dll 里面有一个你自己写的 函数 Public ShellNotepad 在windos下调用的是记事本 在其他平台调用相对应的程序进行处理
把用于win平台的dll放到 SystemShell\Win 目录 其他的放到如 SystemShell\LinuxOrUnix 下
党你的程序在win下运行时
<probing privatePath="SystemShell;LIB;SystemShell\Win"/>
在其他平台
<probing privatePath="SystemShell;LIB;SystemShell\LinuxOrUnix"/>
这样你的工程和程序都不用重新编印即可简单的适应各种情况