通过msbuild更改csproject的AssemblyName

时间:2011-08-09 13:10:49

标签: msbuild

我有一个msbuild在编译时调用*.sln文件。此解决方案文件包含10个csproject,其中一个(我们称之为main.csprojectAssemblyNameWinMusic。 msbuild的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">


  <PropertyGroup>
    <!-- Default value here -->
    <DefineConstants Condition=" '$(DefineConstants)'==''" >TRACE</DefineConstants>   
    <SlnFiles Condition=" '$(SlnFiles)'==''" >FullProject.sln</SlnFiles>   
  </PropertyGroup>

 <!-- <ItemGroup>  -->
  <!--   <SlnFiles Include="SlnFiles=$(SlnFiles2)"/> -->
  <!-- </ItemGroup> -->

  <Target Name="Build">
    <MSBuild Projects="$(SlnFiles)"
                 Properties="DefineConstants=$(DefineConstants)"/>
  </Target>

</Project>

我的问题是,如何从上面的msbuild任务设置AssemblyName属性?

只是为了澄清,我在csproject中谈论的是AssemblyName,而不是AssemblyInfo.cs

编辑:这是我尝试的新build.proj文件,FullProject.sln是一个带有一个exe和一个dll的解决方案文件,但是msbuild文件将dll和exe重命名为{{1 }}。我想要的只是将exe重命名为NoMusic,并且dll应该保留相同的名称。

NoMusic

1 个答案:

答案 0 :(得分:2)

这样做:

<Target Name="Build">
    <MSBuild Projects="@(SlnFiles)"
             Properties="DefineConstants=$(DefineConstants)"/>

    <MSBuild Projects="main.csproject.csproj" 
         Properties="AssemblyName=NoMusic"/>

喜欢知道为什么。