我需要根据平台目标生成不同的程序集名称。例如,我有一个控制台应用程序“bob.exe”。而不是为AnyCPU构建,我需要为x86和x64显式构建,因此需要“bob32.exe”和“bob64.exe”。 Visual Studio 2010项目选项中的“应用程序”选项卡禁用平台组合框。构建事件也不允许每个平台的选项,所以我不能很容易地重命名它。
更新:手动编辑项目文件似乎效果最好,没有额外的文件是构建的一部分,而pdbs具有匹配的名称。
答案 0 :(得分:10)
IDE无法处理此问题,但msbuild.exe可以。使用记事本编辑.csproj文件。您将看到x86 / x64和Debug / Release设置的四个PropertyGroup。第一个元素有一个<AssemblyName>
元素。将其复制并粘贴到其他3组中。并重命名他们的价值。
答案 1 :(得分:3)
您可以使用$(PlatformName)
宏添加Post-Built事件来复制可执行文件。
您需要复制(不重命名)或调试器不起作用。
答案 2 :(得分:0)
我已经尝试过@Hans Passant的解决方案,但在我的情况下却无法使用。
此外,在具有四个构建选项的方案中,我需要突出显示.EXE名称中的 Configuration 和 Platform 信息。
为了获得理想的结果,我创建了第一个<PropertyGroup>
标记实例[同时包含<ProjectGuid>
和{的四个XML元素 AT THEEND {1}}个标签]:
<OutputType>
我已经通过使用VS2013和VS2017在两个不同的项目上测试了该解决方案。