代码之家  ›  专栏  ›  技术社区  ›  Sylvain

如何在不检查依赖项的情况下构建C#项目?

  •  8
  • Sylvain  · 技术社区  · 15 年前

    给出一个解决方案,其中:

    • 项目P1引用了P2
    • P2引用P3

    当您这样调用msbuild时:

    msbuild.exe /v:m "c:\mysolution\p1\p1.csproj"
    

    Microsoft (R) Build Engine Version 4.0.30319.1
    [Microsoft .NET Framework, Version 4.0.30319.1]
    Copyright (C) Microsoft Corporation 2007. All rights reserved.
    
      P4 -> c:\mysolution\P4\bin\Debug\P4.dll
      p3 -> c:\mysolution\p3\bin\Debug\p3.dll
      p2 -> c:\mysolution\p2\bin\Debug\p2.dll
      p1 -> c:\mysolution\p1\bin\Debug\p1.dll
    

    在我的例子中,我知道依赖关系存在并且是正确的。

    有没有办法只建一个项目 p1.csproj

    5 回复  |  直到 15 年前
        1
  •  4
  •   DaveShaw Thishin    10 年前

    你可以通过 /p:BuildProjectReferences=false 但这有一个限制,如果解决方案配置和引用项目的配置不匹配,msbuild将无法解析引用项目的目标输出文件。。。

    这是一个免费的vs扩展包,你可以下载试试 http://visualstudiogallery.msdn.microsoft.com/98de4058-8dc7-435b-9e01-c0f71dace808

    vs包:Sharp Build实用程序

    我是这个扩展的作者,我在目前的工作中有同样的要求,喜欢这个工具。。。

    基本上,此扩展可以处理上述情况,这将生成生成项目文件的卷影副本,将所有项目引用更改为dll文件引用,并使用卷影项目文件启动msbuild。

        2
  •  2
  •   Brian    15 年前

    目标是什么(你为什么在意)?

    您可以使用程序集引用而不是项目引用(但是要注意debug v版本路径的差异)。

        3
  •  1
  •   grefly    15 年前

    也许您可以在visualstudio中使用配置管理器,并取消选中除要生成的项目之外的所有项目。

        4
  •  0
  •   Dirk Vollmar    15 年前

    查看Microsoft构建解决方案和项目的最佳实践:

    Microsoft Patterns & Practices: Structuring Solutions and Projects

    你现在拥有的是 . 这是一个理想的情况,应该尽可能使用。但是,对于像您这样的大型解决方案,单一的解决方案可能会变得不切实际。

    您可能需要考虑对解决方案进行分区,即对依赖关系树的分区使用单独的解决方案。或者你甚至可以考虑使用所谓的多重解决方案。请查看链接文章,了解这种更改的后果和缺点。也许使用更快的硬件可能是更好的选择。

        5
  •  0
  •   Christopher Painter    15 年前