每个平台目标的不同程序集名称

时间:2010-05-17 13:53:12

标签: c# .net visual-studio-2010

我需要根据平台目标生成不同的程序集名称。例如,我有一个控制台应用程序“bob.exe”。而不是为AnyCPU构建,我需要为x86和x64显式构建,因此需要“bob32.exe”和“bob64.exe”。 Visual Studio 2010项目选项中的“应用程序”选项卡禁用平台组合框。构建事件也不允许每个平台的选项,所以我不能很容易地重命名它。

更新:手动编辑项目文件似乎效果最好,没有额外的文件是构建的一部分,而pdbs具有匹配的名称。

3 个答案:

答案 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 信息。

  • 1)调试,x86
  • 1)x86版本
  • 1)调试,x64
  • 1)x64版本

为了获得理想的结果,我创建了第一个<PropertyGroup>标记实例[同时包含<ProjectGuid>和{的四个XML元素 AT THEEND {1}}个标签]:

<OutputType>

我已经通过使用VS2013和VS2017在两个不同的项目上测试了该解决方案。