Visual Studio 错误MSB4057:项目中不存在目标“Build”

dxpyg8gm  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(231)

我有一个简单的控制台应用程序在.net核心,我试图编译它与“dotnet构建dirs.proj”,但“我得到:错误MSB 4057:项目中不存在目标“生成”。
如果有人有任何想法,请分享你的想法!
这是导演的作品,很简单。

  1. <Project>
  2. <Import Project="Directory.Build.props" />
  3. <Import Project="Directory.Build.targets" />
  4. <ItemGroup>
  5. <ProjectFile Include="ConsoleApp1/ConsoleApp1.csproj" />
  6. </ItemGroup>
  7. </Project>

目标文件没有定义Build。然而,如果我定义了一个东西,它就好像什么都不做。
感谢您提供任何想法或例子。

qq24tv8q

qq24tv8q1#

目标文件没有定义Build。
当您使用类似dotnet build dirs.proj的命令时,dotnet.exe将尝试在dirs.proj文件中查找名为build的目标。您应该在dirs.proj文件或xx.targets文件中直接定义build target。否则您将收到错误MSB4057。
然而,如果我定义了一个东西,它就好像什么都不做。
我假设您正在尝试通过命令dotnet build dirs.proj构建ConsoleApp1项目,如果是这样,则dirs.proj文件中的内容应该是:

  1. <Project>
  2. <Import Project="Directory.Build.props" />
  3. <Import Project="Directory.Build.targets" />
  4. <ItemGroup>
  5. <ProjectFile Include="ConsoleApp1/ConsoleApp1.csproj" />
  6. </ItemGroup>
  7. <Target Name="build">
  8. <Message Text="Custom build starts..." Importance="High"/>
  9. <MSBuild Projects="@(ProjectFile)"/>
  10. </Target>
  11. </Project>

您可以在已定义的build target中使用msbuild task,它将为您编译和构建consoleApp1项目。

另外:

1.根据脚本,目标文件、props文件和dirs.proj文件应该位于解决方案目录中
2.如果解决方案目录中有许多项目,可以尝试使用MySQL将它们全部包含在内:

  1. <ItemGroup>
  2. <ProjectFile Include="**/*.csproj" />
  3. </ItemGroup>

3.对于msbuild任务,可以在使用此任务时指定属性。您可以指定输出路径、配置(调试或发布)、程序集名称.
4.看这个文档,实际上Directory.Build.props and Directory.Build.targets是一些即使我们不显式导入它们也能工作的东西。
希望有帮助:)

展开查看全部

相关问题