Tag: projects and solutions

您何时决定将大型项目拆分为较小的项目?

何时/何地决定将大型Visual Studio项目拆分为较小的多个项目? 如果它可以重复使用? 什么时候项目太大了? (但是有多大太大了?) 当你拆分项目时,你呢, 按数据库表分组 按类似function分组 其他..

Visual Studio不从间接引用的项目复制内容文件

我有以下项目结构: Library1 <–[project reference]– Library2 <–[ref]– Executable ——– ——– ———- ContentFile .cs files .cs files .cs files 所有项目引用都具有CopyLocal = true。 构建项目时, ContentFile会被复制到Library2的输出目录,但不会复制到Executable的输出目录,这意味着应用程序运行时可执行文件缺少ContentFile 。 为什么内容文件被复制到Library2的输出目录,而不是Executable的? 有没有办法将它复制到后者(我想在没有构建事件的情况下这样做,因为我相信人们会忘记这一点)? 我正在寻找一个合理且可维护的解决方案; 在添加新项目或新的间接引用内容文件时需要最少的工作,以便尽可能不要忘记这样做。 使用Post-Build事件(如xcopy ../Library/bin/Debug/SomeDll.dll bin/Debug ); 并手动将项目的输出目录设置为$(SolutionDir)/bin/…而不是默认(基于每个项目),两者都很快变得一团糟。 将内容文件添加为“主项目”中的链接也太乏味了。 如果C#具有与Visual C ++相同的输出文件默认设置(即$SolutionDir/$Platform/$Configuration ),那就好了,但事实并非如此。 我也考虑过根本不使用标准的MSBuild程序并编写一个自定义构建目标(比如在Atmel Studio中使用gcc),但我没有达到目标。 此外,我希望Visual Studio的标准“Build”和“Debug”命令能够像往常一样工作。 更新: 以下是我正在做的更多细节。 我有一个Executable项目的解决方案。 此外,还有一些项目可以调用Plugin 。 Executable通过托管项目引用引用所有这些Plugin 。 由于插件项目是针对可执行文件定制的,但可能具有可重用的组件,因此主要function通常在External项目中实现,而Plugin项目仅仅是包装器(并非总是如此)。 所述External项目有时使用第三方提供的本机DLL。 然后将这些DLL作为内容文件添加到External项目中,并将Copy to output dir设置为Copy always […]