Len*_*ate 5 .net c# assemblies static-libraries .net-assembly
我正在托管代码(主要是C++/CLI)中构建一个工具,有两个版本,一个是"普通用户"版本,另一个是"专业版".
核心代码在两个版本之间是相同的这一事实导致我有点麻烦,因为我想将生成的工具打包为单个程序集(DLL),我不希望必须包含公共的.cpp文件两个版本工具的项目中的代码.我宁愿有一个公共代码的项目和每个工具版本的项目,并且每个版本的工具项目都依赖于公共代码并根据需要链接它.
在非托管C++中,我通过将公共代码放在静态库中并将工具的两个版本链接到它来实现这一点.我似乎无法在C++/CLI中使用它.似乎我被迫将公共代码构建到DLL程序集中,这导致了比我想要的更多的DLL.
因此,总而言之,我无法弄清楚如何在一个项目中构建公共代码并将其与每个最终产品项目链接以生成两个包含公共代码的单个DLL程序集.
我可能做错了什么,但我试图用netmodules和其他方法来解决这个问题,但是我无法让它工作.最后,我让它工作的唯一方法是告诉链接器链接公共代码程序集的构建产品而不是有效的结果但是有点像黑客恕我直言.
无论如何,有没有人对我应该如何解决这个问题有任何建议?
编辑:我想我应该提到这样一个事实,即生成的程序集不是100%托管代码,它们包含托管代码和非托管代码的混合,可能在使用C++/CLI生成的程序集中很常见...