使用Visual Studio 2008错误地创建输出文件夹

时间:2008-11-14 15:58:19

标签: c# visual-studio-2008

我有很多项目的解决方案。实际上有一个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:我知道这不是一个关键问题,因为一切都建立并且工作正常,但我不喜欢无意义的文件夹悬挂的想法

2 个答案:

答案 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”。