代码之家  ›  专栏  ›  技术社区  ›  Reto Meier

VS2008-为调试/发布配置输出不同的文件名

  •  24
  • Reto Meier  · 技术社区  · 15 年前

    使用Visual Studio 2008构建C应用程序时,是否可以为每个配置设置不同的输出文件名?

    e.g.
    
    MyApp_Debug.exe
    MyApp_Release.exe
    

    我尝试了一个构建后的步骤,通过附加当前的配置来重命名文件,但这似乎是一种很难的方法。另外,这意味着在按F5键开始调试时,Visual Studio再也找不到该文件。

    3 回复  |  直到 15 年前
        1
  •  33
  •   adrianbanks    15 年前

    您可以通过手工编辑项目文件来实现这一点。定位 <AssemblyName> 节点并向其添加条件属性:

    <AssemblyName Condition="'$(Configuration)'=='Debug'">MyApp_Debug.exe</AssemblyName>
    <AssemblyName Condition="'$(Configuration)'=='Release'">MyApp_Release.exe</AssemblyName>
    

    您还需要复制它来为发布版本添加另一个条件属性。

    虽然这是可能的,但可能会引起问题。有一个 AssemblyConfiguration 可应用于程序集的属性。在 AssemblyInfo.cs ,放置:

    #if DEBUG
    [assembly: AssemblyConfiguration("Debug")]
    #else
    [assembly: AssemblyConfiguration("Release")]
    #endif
    

    这将向编译的程序集添加一个属性,该属性将告诉您应用程序是使用哪个生成配置生成的。

        2
  •  10
  •   Christopher Karper    15 年前

    正如Adrianbanks提到的,您可以手工编辑.csproj文件来完成这项工作。

    不过,我还是会提出更简单的形式:

    <AssemblyName>MyApp_$(Configuration).exe</AssemblyName>
    

    但是,如果您曾经编辑过此项目的属性,则此更改很可能会丢失。这是一个你必须手动保持在顶部的东西,因为它不会是一个受支持的设置。

    要手动编辑项目定义,请在Visual Studio中右键单击该项目,然后选择“卸载”,然后右键单击卸载的项目,然后选择“编辑”,它将为您打开XML定义。

        3
  •  -1
  •   Justin    15 年前

    不过,我确信在我的经验中,对于调试/发布配置使用不同的文件名是一个坏主意,因为它会导致各种各样的问题(非常像vs在尝试执行重命名的应用程序时遇到的问题)。

    为什么不简单地在程序集属性(例如在注释中)中指示它的调试/发布