我有很多项目的解决方案。实际上有一个核心项目和一些插件。我更改了所有插件的 OutputPath,因此所有二进制文件最终都位于 Core bin\debug 文件夹中。 (这是必要的,因为核心没有对插件的引用,因此它在编译时不会“包含”插件二进制文件。)
所以基本上我的文件夹结构如下:
Solution
MySolution.sln
Plugin1\
Plugin2\
Core\bin\debug
每个插件的输出路径是“..\Core\bin\debug”。当我打开解决方案时,Visual Studio 在解决方案的父文件夹中创建一个文件夹“Core\bin\debug”,就好像相对路径从 .sln 文件开始一样。但是,当我构建解决方案时,二进制文件将输出到正确的路径(“Solution\Core\bin\debug”)。
Core\bin\debug
对我来说,这看起来像是 Visual Studio 的错误,但也许我忽略了某个地方的某些选项。有什么想法如何解决这个问题吗?
PS:我知道这不是一个关键问题,因为一切都构建并运行良好,但是我不喜欢毫无意义的文件夹挂在周围的想法
您可以做的不是更改插件的输出位置,而是为它们创建一个构建后脚本(“属性\构建事件”选项卡),将它们复制到 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) 值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)