我有一个简单的控制台应用程序在.net核心,我试图编译它与“dotnet构建dirs.proj”,但“我得到:错误MSB 4057:项目中不存在目标“生成”。
如果有人有任何想法,请分享你的想法!
这是导演的作品,很简单。
<Project>
<Import Project="Directory.Build.props" />
<Import Project="Directory.Build.targets" />
<ItemGroup>
<ProjectFile Include="ConsoleApp1/ConsoleApp1.csproj" />
</ItemGroup>
</Project>
目标文件没有定义Build。然而,如果我定义了一个东西,它就好像什么都不做。
感谢您提供任何想法或例子。
1条答案
按热度按时间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文件中的内容应该是:您可以在已定义的
build target
中使用msbuild task,它将为您编译和构建consoleApp1项目。另外:
1.根据脚本,目标文件、props文件和dirs.proj文件应该位于解决方案目录中
2.如果解决方案目录中有许多项目,可以尝试使用MySQL将它们全部包含在内:
3.对于msbuild任务,可以在使用此任务时指定属性。您可以指定输出路径、配置(调试或发布)、程序集名称.
4.看这个文档,实际上
Directory.Build.props and Directory.Build.targets
是一些即使我们不显式导入它们也能工作的东西。希望有帮助:)