【问题标题】:Set build order without using project reference在不使用项目参考的情况下设置构建顺序
【发布时间】:2018-06-14 22:30:22
【问题描述】:

在我们的解决方案中,我们有超过 150 个项目,现在大多数项目都在使用一些由另一个项目生成的 .js 文件。所以我需要在别人之前建立这个项目。我知道我可以将其他项目设置为引用这个项目,但问题是我们有近 100 个项目需要那些 .js 文件,将这个项目作为参考项目添加到 100 个项目并不是最好的选择。

那么如何在不添加项目引用的情况下设置构建顺序?

感谢任何建议。

【问题讨论】:

  • 右键单击解决方案并选择项目构建顺序。在依赖项选项卡上,手动使您的项目依赖于所需的项目。 (这不会添加项目引用)这将使您的解决方案按所需顺序构建。
  • @Sunil,感谢您的建议,但您仍需要在“项目依赖项”窗口中为其他 100 个项目设置依赖项。
  • 下一个最好的办法是添加一个依赖项并观察解决方案文件中的变化。然后直接在解决方案文件中进行更改。

标签: c# visual-studio visual-studio-2015 msbuild


【解决方案1】:

在 Visual Studio 中,对于依赖于您的依赖项目 X 的每个项目:

  1. 右键项目
  2. 选择构建依赖项...
  3. 选择项目依赖项
  4. 勾选本项目所依赖的项目
  5. 点击确定
  6. 对所有其他项目重复步骤 1-5

遗憾的是,选择多个项目(至少在 VS2017 中)不会让您一次将设置应用于多个项目

【讨论】:

  • 谢谢,但这不应该是我想要的,这样,我仍然需要为近 100 个项目重复 1-5 个步骤。这不是我想要的,我在我的问题中也说过,反正谢谢你的回答。
  • @John 这是一个合法的解决方案。我认为更大的问题是为什么您在 一个解决方案中有 100 个项目。另外,不是 “添加项目引用”
【解决方案2】:

如何在不添加项目引用的情况下设置构建顺序?

您不想为这 100 个项目中的每一个设置项目引用或项目依赖项,但是没有这样的选项可以一次设置多个引用。

为了解决这个问题,我想为您提供两种解决方法。

  • 首先构建引用的项目,然后构建解决方案。

    这样,你要注意先手动构建引用的项目。看来你不是独立开发者,这种方式不应该是最好的选择。

  • 使用批处理文件设置构建顺序。

您可以使用批处理文件设置构建顺序,先构建引用的项目,然后构建解决方案:

    @echo OFF 
    call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
    echo "Starting Build for all Projects with proposed changes"
    MSBuild.exe "C:\Users\Admin\Source\repos\TestMSBuildOrder\GenerateJSFileProject\GenerateJSFileProject.csproj"
    MSBuild.exe "C:\Users\Admin\Source\repos\TestMSBuildOrder\TestMSBuildOrder.sln"
    pause
    echo "All builds completed." 

希望这会有所帮助。

【讨论】:

  • 刘,谢谢你的建议,这应该是一个很好的解决方法,作为优化,我想在那个项目的构建事件中设置这个bat文件,这样我只需要构建那个项目,不要需要从外部手动运行 bat 文件。但我收到错误错误 MSB3073: The command exited with code 1.stackoverflow.com/questions/48146611/…。你能帮我解决这个问题吗?
猜你喜欢
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多