c# - 如何在.NET中将一个项目编译成多个dll

标签 c# .net visual-studio-2010 csc

我正在尝试将一个 .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 引用,类似地为File2.dll?

我希望最好将此作为 Visual Studio 中后期构建步骤的一部分。

感谢您的宝贵时间...

编辑

感谢您的所有回复。有很多建议将解决方案拆分为多个项目。虽然这是一种方法,但我不确定是否要为两个 dll(即 File1.dll 和 File2.dll)创建任何依赖项。让我解释一下..

我在创建多个项目时遇到的问题是,File1.cs 和 File2.cs 都需要一些代码。我不希望它们在两个项目中重复出现。在第三个项目中保留通用代码意味着将创建 File1.dll 和 File2.dll 都需要的第三个 dll。我不想要这个。我只想创建 File1.dll 和 File2.dll,这就是我将它们都保存在一个项目中的原因。关于如何实现这一点有什么建议吗?

再次感谢您的回复。

干杯。

最佳答案

如果您想为每个组件使用单独的库,则需要将您的项目拆分为同一解决方案中的多个项目。

您可以将同一个文件包含在多个项目中而无需创建重复副本(添加为链接)以避免重复代码的问题。

关于c# - 如何在.NET中将一个项目编译成多个dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12370157/

相关文章:

c# - .net 4.0和vs2010 beta2何时支持mysql

c# - 如何使用 vs2010 在 Sql Server 2012 中运行 SSIS 包?

c# - Entity Framework ,导航属性和存储库模式

c# - Automapper 未将 IEnumerable<T> 映射到 Viewmodel 中的 IEnumerable<T>

.net - 生成 IEnumerable(Of T) 元素的所有唯一组合

.net - 如何为两列的值范围实现查找表

c# - Haxe - 将 haxe 代码编译为 .NET DLL 而不是 EXE

c# - 搜索文本包含 QueryOver

c# - 强制 HttpClient 获取新版本的源

c# - 将我在 Visual 2010 中的项目定位到 .Net 4.0,但系统仍在寻找 dll 'System.Core version 2.0.5.0'