← Zurück

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

Простой способ автоверсионности:

  1. Скачать и установить task AssemblyInfoTask
  2. Найти установленный файл Microsoft.VersionNumber.targets
  3. Скопировать его в папку солюшна
  4. Прописать в проектах (в самом конце)
  <Import Project="$(SolutionDir)\Microsoft.VersionNumber.Targets" />
</Project>
  1. Отредактировать Microsoft.VersionNumber.targets по желанию. Например так
  
......
<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 цифр (код по ссылке нормально не работает). В итоге у вас при каждом билде номер версии будет изменяться в соответствии с шаблоном. Причём и номер версии файла тоже. И информацию о продукте также можно будет редактировать только в одном месте.

Kommentare (1)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

VassilSanych
VassilSanych Autor

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


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

И всё работает без пересборки.

Johny Cash