我试图将一个.Net c#项目编译为多个dll。但是,这是事情。如何在.NET中将一个项目编译为多个dll
这是我的项目结构。
Bin
Dir1
Dir2
File1.cs
File2.cs
myproject.csproj
我想将此项目编译为File1.dll和File2.dll。 File1.dll和File2.dll都使用Dir1和Dir2中各种.cs文件中的代码。子目录中存在的.cs文件中的某些类是File1.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,这就是为什么我将它们都保存在一个项目中的原因。有关如何做到这一点的任何建议?
再次感谢您的回复。
欢呼声。
你需要指定你想贡献给每个'dll'的'.cs'文件。尽管你可能会发现,因为这些都在一个项目中,所以你有没有想到的依赖关系。 – Oded
感谢Oded。但那意味着每次项目内容改变时我都需要改变我的脚本,对吧?或者至少手动分析整个项目的变化。是否没有可以自动链接所引用的类的文件/文件夹的开关?我希望每次在VS中构建项目时都要引用新文件,而不必每次都包含它们。 – user20358
没错。或者使用内置的其他构建系统,但需要保持同步。将项目分解为几个将是最简单的。 – Oded