.net - 错误 MSB4057:项目中不存在目标“Build”
问题描述
我在 .net 核心中有一个简单的控制台应用程序,我尝试使用“dotnet build dirs.proj”对其进行编译,但“我得到:错误 MSB4057:项目中不存在目标“构建”。”
如果有人有任何想法,请分享您的想法!
这是dirs.proj,很简单。
<Project>
<Import Project="Directory.Build.props" />
<Import Project="Directory.Build.targets" />
<ItemGroup>
<ProjectFile Include="ConsoleApp1/ConsoleApp1.csproj" />
</ItemGroup>
</Project>
目标文件没有定义构建。但是,如果我定义的东西就像它不会做任何事情。
在此先感谢您提供任何想法或示例。
解决方案
目标文件没有定义构建。
当您使用类似命令时dotnet build dirs.proj
,dotnet.exe 将尝试查找文件中命名的build
目标dirs.proj
。您应该直接在文件或文件中定义build target
它。否则你会得到错误 MSB4057...dirs.proj
xx.targets
但是,如果我定义的东西就像它不会做任何事情。
我假设您正在尝试通过 command 构建 ConsoleApp1 项目dotnet build dirs.proj
,如果是这样,那么 dirs.proj 文件中的内容应该是:
<Project>
<Import Project="Directory.Build.props" />
<Import Project="Directory.Build.targets" />
<ItemGroup>
<ProjectFile Include="ConsoleApp1/ConsoleApp1.csproj" />
</ItemGroup>
<Target Name="build">
<Message Text="Custom build starts..." Importance="High"/>
<MSBuild Projects="@(ProjectFile)"/>
</Target>
</Project>
您可以在定义中使用msbuild 任务build target
,它将为您编译和构建 consoleApp1 项目。
此外:
1.根据您的脚本,您的目标文件、道具文件和 dirs.proj 文件应位于解决方案目录中
2.如果解决方案目录中有很多项目,可以尝试使用通配符将它们全部包含在内:
<ItemGroup>
<ProjectFile Include="**/*.csproj" />
</ItemGroup>
3.对于msbuild任务,可以在使用该任务时指定属性。您可以指定输出路径、配置(调试或发布)、程序集名称...
4.看这个文件,实际上Directory.Build.props and Directory.Build.targets
即使我们不明确导入它们也能起作用。
希望能帮助到你 :)
推荐阅读
- python - 如何在只知道某些字符的情况下在单词列表中查找单词
- python - 根据范围计算两个日期之间的小时数
- javascript - 克隆 ag 网格中的最后一行
- java - 我想用 Jframe 显示一张图片 5 秒
- micronaut - 使用 JWT 身份验证多项服务进行 Micronaut 测试
- shell - 为什么数学评估为 var=$((expresison)) 在 zsh 中比 ((var=expression)) 慢?
- html - 如何使“继续使用 Facebook”按钮对网络移动设备友好
- reactjs - Redux saga 使用动作类型作为道具
- javascript - 我有一个 ReactJS 的空白页面 - 我是刚开始的新手
- java - 用元胞自动机评估算术表达式