Visual Studio C#:如何让非依赖项目随启动项目一同构建?
解决VS启动时自动构建未被启动项目依赖的项目问题
这个场景我太熟了!VS默认的构建逻辑是只处理启动项目及其直接/间接依赖的项目,而你的B项目只依赖A、却没被A依赖,所以启动A的时候自然不会触发B的构建。给你几个实用的解决办法:
方法一:强制解决方案构建指定项目
这是最直接的方式,让VS在启动时构建你需要的所有项目:
- 右键你的解决方案,选择「属性」
- 切换到「配置属性」→「配置」页面
- 在下方的项目列表里,找到项目B,勾选它对应的「构建」复选框(注意要匹配你当前使用的配置和平台,比如Debug|Any CPU)
- 点击「确定」保存设置。之后每次启动解决方案时,VS会自动构建所有勾选了「构建」的项目,包括A和B。
方法二:添加无实际依赖的项目引用(避免循环依赖)
如果不想修改解决方案的全局构建设置,可以给A加一个“假”的B引用,让VS认为A依赖B,但不会引入循环依赖或多余的文件:
- 右键项目A →「添加」→「项目引用」
- 在弹出的窗口里勾选项目B,点击「确定」
- 右键A里的B引用 →「属性」
- 在属性窗口中,把「复制本地」设为
False,「特定版本」设为False,并且取消「输出组」里的所有选项(比如“主输出”“内容文件”)
这样既让VS在启动A时自动构建B,又不会影响A的输出文件或导致循环依赖。
方法三:使用预构建事件手动触发构建
如果上面两种方法都不适用,还可以通过预构建命令强制构建B:
- 右键项目A →「属性」→「生成事件」→「预生成事件命令行」
- 输入类似以下的命令(替换成你B项目的实际路径和文件名):
msbuild "$(SolutionDir)B\B.csproj" /p:Configuration=$(Configuration),Platform=$(Platform) - 保存设置后,每次构建A之前,都会自动执行这个命令构建B。
内容的提问来源于stack exchange,提问作者mark_h
相关产品推荐
相关产品推荐

