【问题标题】:Change assembly name based on configuration (Visual Studio 2005/2008)根据配置更改程序集名称 (Visual Studio 2005/2008)
【发布时间】:2009-05-21 13:45:34
【问题描述】:

是否可以根据项目配置更改程序集名称?

我已经在 assemblyinfo.cs 文件上尝试了条件编译指示,但这只会更改程序集属性,而不是名称本身。

【问题讨论】:

    标签: visual-studio visual-studio-2008 visual-studio-2005


    【解决方案1】:

    如果您右键单击您的项目并选择“编辑项目文件”(我在这里是 2008 年,它可能是一个新选项,如果是,则只需在任何旧文本编辑器中打开项目文件)您应该会看到类似于以下内容:

      <PropertyGroup>
        ...
        <AssemblyName>ClassLibrary1</AssemblyName>
        ...
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        ...
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        ...
      </PropertyGroup>
    

    基本上,在更具体的属性组中未覆盖的任何属性都继承自更通用的第一组。因此,要实现您想要的,只需编辑文件,以便在每个特定组中定义 AssemblyName 标记:

      <PropertyGroup>
        ...
        <AssemblyName>ClassLibrary1</AssemblyName>
        ...
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        ...
        <AssemblyName>ClassLibrary1Debug</AssemblyName>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        ...
        <AssemblyName>ClassLibrary1Release</AssemblyName>
      </PropertyGroup>
    

    这将根据每个配置更改程序集名称。

    【讨论】:

    • 谢谢,马丁。 “编辑项目文件”上下文选项似乎连接到此插件:code.msdn.microsoft.com/PowerCommands
    • 项目文件是扩展名为.csproj的文件,对于那些想知道的人。
    • 随着时间的推移,有人在现场项目中使用过这个吗?我知道这在技术上是可行的,但是在 Visual Studio 没有预料到的情况下是否有任何副作用并会导致问题?显然,如果开发人员在 UI 中编辑程序集名称,则行为将是未定义的。还有别的事吗?我在其他论坛上看到过提到调试问题。我需要这个来在开发工作站上拥有 ClickOnce 应用程序的测试和生产版本。
    • @MikeJansen:我在一个实时项目中使用它,我在批量构建中将 32 位和 64 位版本构建到同一目录。因为 .csproj 实际上是一个 msbuild 项目文件,并且 msbuild 支持这一点,所以唯一的问题是你说的 UI。其他开发人员编辑这几乎不是问题,因为他们没有理由更改它,而且由于审查提交,它也很容易在源代码控制中捕获和恢复。
    • @caesay 我也发现了。我已经安装了大约 6 个月了。我们在项目文件中确实有另外两个开发人员,我遇到了一些事件,但就像你说的那样,在源代码控制的帮助下,没有什么是我无法克服的。我会说这些项目属性似乎只在项目负载上计算。如果您更改配置,则必须关闭并重新打开项目/解决方案才能使其生效。这已经咬了我好几次了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2011-02-27
    • 2012-01-04
    • 1970-01-01
    相关资源
    最近更新 更多