Автоверсионность файлов

Автоверсионность файлов
Atom
12/27/2012
VassilSanych


Простой способ автоверсионности:
1. Скачать и установить task
AssemblyInfoTask
2. Найти установленный файл Microsoft.VersionNumber.targets
3. Скопировать его в папку солюшна
4. Прописать в проектах (в самом конце)
Code
  <Import Project="$(SolutionDir)\Microsoft.VersionNumber.Targets" />
</Project>

5. Отредактировать Microsoft.VersionNumber.targets по желанию. Например так
Code
  
......
<PropertyGroup>
    <AssemblyMajorVersion>0</AssemblyMajorVersion>
    <AssemblyMinorVersion>1</AssemblyMinorVersion>
    <AssemblyBuildNumber></AssemblyBuildNumber>
    <AssemblyRevision></AssemblyRevision>
    <AssemblyBuildNumberType>DateString</AssemblyBuildNumberType>
    <AssemblyBuildNumberFormat>MMdd</AssemblyBuildNumberFormat>
    <AssemblyRevisionType>AutoIncrement</AssemblyRevisionType>
    <AssemblyRevisionFormat>000</AssemblyRevisionFormat>
  </PropertyGroup>

  <!-- Properties for controlling the Assembly File Version -->
  <PropertyGroup>
    <AssemblyFileMajorVersion>0</AssemblyFileMajorVersion>
    <AssemblyFileMinorVersion>1</AssemblyFileMinorVersion>
    <AssemblyFileBuildNumber></AssemblyFileBuildNumber>
    <AssemblyFileRevision></AssemblyFileRevision>
    <AssemblyFileBuildNumberType>DateString</AssemblyFileBuildNumberType>
    <AssemblyFileBuildNumberFormat>MMdd</AssemblyFileBuildNumberFormat>
    <AssemblyFileRevisionType>AutoIncrement</AssemblyFileRevisionType>
    <AssemblyFileRevisionFormat>000</AssemblyFileRevisionFormat>
  </PropertyGroup>

  <!-- Properties for controlling COM visibility -->
  <PropertyGroup>
    <AssemblyComVisible></AssemblyComVisible>
    <AssemblyGuid></AssemblyGuid>
  </PropertyGroup>

  <!-- Propeties for controlling extended assembly attributes -->
  <PropertyGroup>
    <AssemblyCompany>Pushkin</AssemblyCompany>
 
    <AssemblyTrademark>Alex</AssemblyTrademark>
    <AssemblyConfiguration></AssemblyConfiguration>
    <AssemblyCopyright>Pushkin © 2012</AssemblyCopyright>
    <AssemblyCulture></AssemblyCulture>
    <AssemblyDescription></AssemblyDescription>
    <AssemblyProduct>PushkinRobot</AssemblyProduct>
    <AssemblyTitle></AssemblyTitle>
  </PropertyGroup>
.......

Частично дёрнуто отсюда
Только проследите, чтоб в каждом номере версии было не более 4 цифр (код по ссылке нормально не работает).
В итоге у вас при каждом билде номер версии будет изменяться в соответствии с шаблоном. Причём и номер версии файла тоже.
И информацию о продукте также можно будет редактировать только в одном месте.


VassilSanych

Avatar
Date: 12/27/2012
Reply


Решение "проблемы подсовывания"
Это когда не хочется билдить проект заново с новыми версиями библиотек, о хочется, чтоб они подхватывались независимо от версии.
В файле config стартового проекта прописываете принудительные биндинги на эти библиотеки, как например здесь для System.Data.SQLite с новой версией 1.0.77.0:
Code

<runtime>
	<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
		<dependentAssembly>
			<assemblyIdentity name="System.Data.SQLite" publicKeyToken="DB937BC2D44FF139" culture="neutral"/>
			<bindingRedirect oldVersion="0.0.0.0-1.0.77.0" newVersion="1.0.77.0"/>
		</dependentAssembly>
	</assemblyBinding>
</runtime> 

И всё работает без пересборки.
Thanks: Johny Cash


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy