我忙于将我的代码从.Net Framework库移动到.netstandard2.0库。到目前为止它进展顺利,但现在我仍然坚持使用.csproj文件。
现有项目文件已定义
<Target Name="Rebuild">
<Exec Command="echo Now Rebuilding the package" />
</Target>
实际命令执行一个exe,它根据xsd生成一堆xml类。
我无法在.netstandard2.0项目中使用它?
我到处搜索,但我找不到合理的原因......
答案 0 :(得分:0)
我怀疑在您的特定实例中,Rebuild
目标将被代码后隐式导入的sdk目标覆盖。如果要覆盖SDK提供的任务,则需要更改为显式SDK导入(而不是<Project Sdk="...">
):
<Project>
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
<!-- other project content -->
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
<Target Name="Build">
<!-- overwrite Build target here -->
</Target>
<Target Name="Rebuild">
<!-- overwrite Rebuild target here -->
</Target>
</Project>
支持Exec
目标虽然echo
命令可能有效,也可能无效,具体取决于您运行它的平台(因为echo
可能只是内置命令shell但没有可以运行的可执行文件。
确保:
PATH
上找到的可执行文件的路径开头,或者指定为正在构建的csproj文件的绝对或相对。/t:Clean;Build
代替/t:Rebuild
。