vs 多目标框架输出不同结果的文件名

发布时间 2023-08-17 13:59:39作者: trykle

描述如下
https://stackoverflow.com/questions/65599082/change-multi-target-project-output-path-and-file-name
希望同一个项目得到的文件名
D:\bin\app-net48.exe
D:\bin\app-net50.exe
使用stackoverflow的答案,vs将提示我找不到目标框架
貌似$(TargetFramework)这个变量就不存在

<PropertyGroup Condition="'$(TargetFramework)'=='net48'">
    <AssemblyName>app-net48</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)'=='net5.0-windows'">
    <AssemblyName>app-net50</AssemblyName>
</PropertyGroup>

最后我用生成后事件,直接改名了

if "$(TargetFramework)" == "net6-windows" copy "$(TargetPath)" "$(TargetDir)$(MSBuildProjectName)_core.exe"
if "$(TargetFramework)" == "net48" copy "$(TargetPath)" "$(TargetDir)$(MSBuildProjectName)_fx.exe"

del /f /s /q "$(TargetPath)"