AppendTargetFrameworkToOutputPath 在 .targets 文件中失败
该物业AppendTargetFrameworkToOutputPath
可以阻止 MSBuild 追加TargetFramework
to OutputPath
,但是因为TargetFramework
我们创建项目时已经生成了文件夹,我们需要手动删除TargetFramework文件夹添加后<Import Project="PathToCommonTargets" />
到项目中,否则该文件夹将永远存在,那么我们就可以构建项目而无需TargetFramework
to OutputPath
.
If the TargetFramework
删除后仍然生成文件夹,应将其内容加倍.targets
并且进口声明是正确的。为了确保它们,我在.target
file:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
</PropertyGroup>
<Target Name="Test" AfterTargets="Build">
<Message Text="This is Test Custom Target!"></Message>
</Target>
</Project>
当我们构建项目时,我们可以在输出窗口中看到消息信息,这意味着内容.targets
并且进口声明是正确的。
Update:
您能帮我了解如何删除 TargetFramework 吗?
要实现此目的,请卸载您的项目。然后在项目的最后,就在结束标记之前</project>
,放置以下脚本:
<Target Name="RemoveDirectories" AfterTargets="Build">
<RemoveDir
Directories="$(ProjectDir)$(OutDir)" />
</Target>
此外,您需要备份文件TargetFramework
到 bin\debug 或 bin\release 文件夹,所以我们还需要在删除任务之前复制任务:
<ItemGroup>
<MySourceFiles Include="$(ProjectDir)$(OutDir)\*.*"/>
</ItemGroup>
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="$(ProjectDir)bin\$(ConfigurationName)"
/>
<RemoveDir
Directories="$(ProjectDir)$(OutDir)" />
希望这可以帮助。