我有很多项目的解决方案。实际上有一个Core项目和一些插件。我为所有插件更改了OutputPath,因此所有二进制文件最终都在Core bin \ debug文件夹中。 (这是必要的,因为Core没有插件的引用,因此它在编译时不会“包含”插件二进制文件。)
基本上我的文件夹结构如下:
Solution MySolution.sln Plugin1\ Plugin2\ Core\bin\debug
每个插件OutputPath都是“.. \ Core \ bin \ debug”。当我打开解决方案时,Visual Studio在Solution的文件夹parent中创建一个文件夹“Core \ bin \ debug”,就像相对路径从.sln文件开始一样。但是,当我构建解决方案时,二进制文件将输出到正确的路径(“Solution \ Core \ bin \ debug”)。
核心\ BIN \调试对我来说,它看起来像是一个Visual Studio漏洞,但也许我忽略了某个选项。有任何想法如何解决这个问题?
PS:我知道这不是一个关键问题,因为一切都建立并且工作正常,但我不喜欢无意义的文件夹悬挂的想法答案 0 :(得分:3)
您可以为它们创建一个构建后脚本(Properties \ Build Events选项卡),而不是更改插件的输出位置,而是将它们复制到Core文件夹。这样可以防止与输出文件夹的混淆。
这个命令行可以帮到你:
copy "$(TargetPath)" "$(SolutionDir)Core\$(OutDir)"
如果您还需要复制.pdb和.config文件,可以添加更多行:
copy "$(TargetPath).pdb" "$(SolutionDir)Core\$(OutDir)"
copy "$(TargetPath).config" "$(SolutionDir)Core\$(OutDir)"
如果你真的想用一行来做,这也应该有用,虽然它不是那么干净:
copy "$(TargetPath)*" "$(SolutionDir)Core\$(OutDir)"
如果您在主项目和附加组件中没有使用相同的输出路径,则需要使用硬编码值替换$(OutDir)。如果你将它们设置为典型的“\ bin \ Debug”文件夹(或刚刚保留默认值),那么你就可以使用$(OutDir)值。
答案 1 :(得分:1)
不使用“.. \ Core \ bin \ debug”,而是使用“$(SolutionDir)\ Core \ bin \ debug”。