【问题标题】:Re configuring solution with many projects使用许多项目重新配置解决方案
【发布时间】:2011-11-04 05:19:36
【问题描述】:

我们的解决方案驻留在 TFS 2010 上,现在有 39 个项目。一个windows应用项目和38个类库。到目前为止,我们的 Windows 应用程序项目包含对 CopyLocal=true 的所有类库的所有引用。这种方式构建会生成一个文件夹,其中包含所有 dll 以及我们的 .exe。

此设置不再适用于我们,我们需要从 Windows 应用程序中删除所有引用。项目(无论如何,dll都是使用反射加载的)。如何将构建配置为像以前一样工作,但在 Windows 应用程序中没有引用。项目?

【问题讨论】:

    标签: visual-studio visual-studio-2010 msbuild


    【解决方案1】:

    您需要修改 38 个库项目的构建。有几个选项:

    您可以更改每个项目,使 $(OutputPath) 属性指向正确的放置文件夹,如下所示:

    <PropertyGroup>
       <OutputPath>..\Application\bin\$(Configuration)</OutputPath>
    </PropertyGroup>
    

    如果我这样做,我会更改所有 39 个属性以使用定义它的通用导入,并将它们全部构建到放置文件夹。然后只需将应用程序项目更改为指向放置文件夹进行调试。

    您同样可以(使用通用导入)在构建后部署步骤中连接,以便在构建每个项目时将构建的程序集复制到放置文件夹。

    【讨论】:

    • 感谢。我会尝试你的建议。
    • 我遇到了一个意想不到的问题。解决方案按预期自行构建,因此主要问题已解决,但现在 VS2010 重建项目,即使使用 F5 调试选项时没有任何更改?!要启动应用程序进行调试,我需要等待几分钟才能完成不必要的构建?!
    • 在增量构建信息失控之前,我已经看到过这种事情。尝试通过删除所有“obj”和“bin”文件夹来进行彻底的手动“清理”,关闭并重新启动 VS,然后再试一次。如果这不起作用,请将构建输出日志更改为“诊断”并构建,然后将“输出”窗口复制到文本文件并搜索“构建项目”通知,以显示为什么要重建项目以获得线索。
    【解决方案2】:

    当您在命令行上通过 MSBuild 构建项目时,您可以执行以下操作:

     msbuild yoursolution.sln /p:Configuration=Debug /p:OutDir=c:\your-specific-location
    

    OutDir 是在每个项目中从 OutputPath 创建的变量,因此在此处覆盖它将全局覆盖它,确保所有已构建项目的所有输出都复制到此位置。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-25
      • 2017-06-17
      相关资源
      最近更新 更多