Изменить AssemblyName csproject через msbuild - PullRequest
0 голосов
/ 09 августа 2011

У меня есть msbuild, который вызывает файл *.sln при компиляции. Этот файл решения содержит 10 csprojects, один из которых (назовем его main.csproject) имеет AssemblyName как WinMusic. Содержимое 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>

У меня вопрос, как установить свойство AssemblyName из вышеуказанной задачи msbuild?

Просто чтобы уточнить, я говорю о AssemblyName в csproject, а не в AssemblyInfo.cs.

Редактировать: это новый build.proj файл, который я пробовал, FullProject.sln - это файл решения с одним exe и одной dll, но файл msbuild переименовал dll и exe в NoMusic. То, что я хочу, это просто переименовать exe в NoMusic, и DLL должна сохранить то же имя.

<?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>


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

     <MSBuild Projects="WindowsFormsApplication1\WindowsFormsApplication1.csproj" 
         Properties="DefineConstants=$(DefineConstants);Platform=ANYCPU;AssemblyName=NoMusic"/>
  </Target>

</Project>

1 Ответ

2 голосов
/ 09 августа 2011

Просто сделайте это:

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

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

Люблю знать, почему, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...