我有一个项目“ProjA”包装引用到其他几个项目和一些“插件”程序集。所有这些引用都将“复制本地”设置为“真”。请注意,插件程序集中的代码(即项目引用)不直接在“ProjA”中引用,而是通过DI/Ninject加载和定位。 (所以我使用这些项目引用作为获取插件程序集到输出文件夹的方式,请参阅下面的原因)参考其他项目与复制本地上它的参考
我也有项目“ProjB”,它引用ProjA。它调用ProjA代码,它应该使用引用的插件程序集来完成这件事。
问题是,它不起作用。插件程序集不会从ProjA输出文件夹(它们被“复制到本地”)拷贝到ProjB输出文件夹中。所以Ninject不加载它们,并且失败。
所以我的两个问题:
- 如果我口授给VS/MSBuild的是ProjA是指项目P1,P2,P3,P4,并设置复制本地为true - 为什么那么将它假设只有主输出组件需要使ProjA工作?我能否以不同的方式思考?
- 我猜测,添加一个复制本地引用插件程序集作为VS认识插件和使用它们的项目之间的构建依赖关系(目前是一组固定的插件,因此这条路线) - 不是理想。然后,我认为将插件程序集作为“内容”添加到项目中可行,但接下来我有两个问题:1)TFS源代码管理;插件项目需要一个可写目标来构建,据推测 - 内容文件将被“签入”,2)一些插件拥有自己的内容:引用我不需要担心丢失某些东西。去内容路线我需要参考另一个项目的构建输出文件夹,包括它的所有内容,但不是PDB ......看起来更加黑客!
我也考虑过并且为插件项目进行了构建后步骤(不理想:我将它们从另一个拉入到这个新解决方案中,如果我添加后构建步骤,它可能会搞砸其他解决方案)或依赖于它们的项目(这是可以的,但是具有相对路径的XCopy,并且必须手动设置Project Dependencies ..似乎更加黑客)。
有什么我想念,任何想法?如果复制本地链接跨项目引用它将完全适合..
做了一些更多的研究,似乎构建到单个输出文件夹是关键。尽管我是为“其他”解决方案做的,但插件主要在这个解决方案中。那么,如何将这些项目构建到一个* new *'single'输出文件夹中,用于此解决方案? –