Tom*_*han 4 msbuild projects-and-solutions visual-studio-2010 output-directory
我有几个不同的解决方案,其中一些项目可能依赖于其他解决方案中项目的输出.为了管理这个,我在构建之后将每个项目中的/ bin /文件夹中的dll文件复制到共享库位置,然后从那里复制/引用它们到依赖项目.
但是,随着库解决方案变得越来越大,这往往变得不可维护.我花了太多时间在Windows资源管理器中遍历解决方案目录,寻找/ bin /文件夹,并试图找出每个我需要的dll文件中的哪一个或哪些文件.
有没有办法让Visual Studio提示我希望解决方案中的所有项目都具有相同的输出目录?例如,一个/ bin /文件夹直接位于解决方案文件夹下,其中所有项目都放置了它们的输出.
如果可能的话,我想在没有复制文件的硬编码后构建事件的情况下实现这一点,因为如果项目输出更改文件名或添加其他文件,则会失败.我想更改实际输出目录的位置 - $(OutDir)的位置,如果你愿意的话.
我知道你说你不想使用后期制作活动,但你的原因是为什么不引起我的兴趣.听起来你可能很难在post build事件中编写.dll的名称.这很容易避免.
xcopy "$(TargetDir)*" "c:\common\" /Y
将*只会导致一切在你的bin /调试/文件夹被复制到您的共同文件夹.你也可以根据需要复制dll.或者,如果您使用$(TargetPath),您将只复制作为项目结果的1 dll,而不复制任何其他相关依赖项.
UPDATE
我们这样做的方法是将每个项目的整个bin文件夹复制到子文件夹中.假设您有2个项目,WebUtil并且HtmlParserWebUtil依赖于HtmlParser.对于这两个项目,请使用xcopy "$(TargetDir)*" "c:\common\$(ProjectName)" /Y.这将创建c:\ common\WebUtil \和c:\ common\HtmlParser.在WebUtil中,添加对c:\ common\HtmlParser\HtmlParser.dll的引用.现在将在c:\ common中有2个HtmlParser.dll副本.
c:\ common\HtmlParser\HtmlParser.dll //最新版本.C:\ COMMON\WebUtil\HTMLParser的//什么是最新的构建时WebUtil建
这具有各种优点.如果您更改HtmlParser的API,WebUtil将继续工作,因为它将具有较旧的HtmlParser.dll,直到您尝试重建WebUtil(此时您将因为更改的API而出现构建错误).
现在,如果第三个项目涉及依赖于WebUtil的混合,并且您正在使用在HtmlParser中公开类的WebUtil的某些部分,那么您将需要从新项目中添加对这两个项目的引用.添加对HtmlParser.dll的引用时,请使用c:\ common\WebUtil中的引用.这样做是因为您只是将其作为WebUtil的必要要求包含在内.现在,您将始终拥有与您当前版本的WebUtil.dll匹配的HtmlParser.dll版本.
我希望这是有道理的.管理它绝对是一件棘手的事情.等到你必须使用svn:externals = P开始拉下所有依赖项
| 归档时间: | 
 | 
| 查看次数: | 9456 次 | 
| 最近记录: |