我正在尝试将一个 .Net c# 项目编译成多个 dll。但事情就是这样。
这是我的项目结构。
Bin
Dir1
Dir2
File1.cs
File2.cs
myproject.csproj
我想把这个项目编译成 File1.dll 和 File2.dll。File1.dll 和 File2.dll 都使用 Dir1 和 Dir2 中的各种 .cs 文件中的代码。File1.cs 需要子目录中的 .cs 文件中的这些类,而 File2.cs 需要其他类。File1.cs 和 File2.cs 都会使用一些。
我使用了以下内容:
csc /t:library /out:File1.dll /recurse:*.cs
csc /t:library /out:File2.dll /recurse:*.cs
但是生成的 dll 是彼此的精确副本,只是文件名不同。有没有办法让我编译它们,这样当我检查对象浏览器中的每个 dll 时,它只有那些来自 Dir1 和 Dir2 中的 .cs 文件的类,这些类在 File1.cs 中为 File1.dll 引用,对于 File1.dll 和类似的文件2.dll?
我想最好将其作为 Visual Studio 中后期构建步骤的一部分。
谢谢你的时间...
编辑
感谢您的所有回复。有很多建议将解决方案拆分为多个项目。虽然这是一种方法,但我不确定是否要为这两个 dll(即 File1.dll 和 File2.dll)创建任何依赖项。让我解释..
我在创建多个项目时看到的问题是 File1.cs 和 File2.cs 都需要一些代码。我不希望它们在两个项目中重复。将公共代码保留在第三个项目中意味着将创建 File1.dll 和 File2.dll 都需要的第三个 dll。我不想要这个。我只想创建 File1.dll 和 File2.dll,这就是为什么我将它们都保存在一个项目中的原因。关于如何实现这一点的任何建议?
再次感谢您的回复。
干杯。