Управление версиями блока с помощью CruiseControl.net

Вы можете использовать javascript и скрытый ввод с php и отправить форму, используя имя ввода

 <script>
        document.querySelector("input-hidden").value = document.querySelector("phone").innerHTML;
    </script>
10
задан 13 January 2009 в 12:23
поделиться

3 ответа

Что относительно того, чтобы использовать общий AssemblyInfo через Ваши проекты?

Это - то, что мы делаем для наших продуктов:

  • Каждый проект имеет свой собственный AssemblyInfo.cs - это содержит AssemblyTitle, AssemblyDescription, Гуид и другие атрибуты, которые уникальны для того блока.

  • Каждый проект также имеет два других Информационных файла блока, обратите внимание, что они добавляются как ссылка, а не файл прямого доступа (VS-> Добавляют->, Существующий Файл-> Добавляет как ссылка (мало стрелки вниз рядом с добавляют)),

Эти два файла связей:

  1. CompanyAssemblyInfo.cs - AssemblyCompany, AssemblyCopyright, AssemblyConfiguration, CLSCompliant, SecurityPermission, и т.д. В основном все мы хотим стандарт на всех наших блоках.

  2. ProductAssemblyInfo.cs - AssemblyProduct, AssemblyVersion, AssemblyFileVersion. Это позволяет нам продвигать ту же версию через ко всем блокам из одного файла.

Наш процесс CI и выпуска более сложен, но это в основе его - единственная точка (файл), который управляет версией продукта (блоки, установщики, все!)

11
ответ дан 3 December 2019 в 19:36
поделиться

Существует задача сделать, о чем Вы спрашиваете.

Необходимо будет установить задачи MSBuildCommunity, найденные здесь.

Затем можно создать что-то вроде этого:

<PropertyGroup>
<MyAssemblyVersion>$(CCNetLabel)</MyAssemblyVersion>
</PropertyGroup>

<Target Name="GenAssemblyInfo">
    <AssemblyInfo
      ContinueOnError="false"
      CodeLanguage="CS"
      OutputFile="$(MSBuildProjectDirectory)\YourAssembly\AssemblyInfo.cs"
      AssemblyTitle="blah"
      AssemblyDescription="blah blah"
      AssemblyCompany="Anj Software, Inc."
      AssemblyProduct="Anj's Awesome App"
      AssemblyCopyright="blah blah"
      CLSCompliant="false"
      AssemblyVersion="$(MyAssemblyVersion)"
      AssemblyFileVersion="$(MyAssemblyVersion)"
     />
</Target>

Обратите внимание, что можно установить префикс номера сборки в ccnet.config файле так, чтобы блоки были пронумерованы 2.1.0.x, где x является номером сборки. Это - то, как мы делаем нашу нумерацию версии, где я работаю.

Необходимо будет все еще сохранить файл AssemblyInfo.cs по умолчанию как часть каждого из проектов, которые составляют решение.

6
ответ дан 3 December 2019 в 19:36
поделиться

Я использую powershell для этого. lpath является путем к исходному коду, и buildnum является моим buildnumber, который я добавляю. Это - все, что я на самом деле делаю с этим. Однако это должно дать Вам достаточно, чтобы изменить или установить любые из других доступных полей. Я передаю в lpath, и я получаю buildnumber от доступных переменных среды в CC.NET, и я могу использовать этот сценарий много раз, просто изменив то, в чем я передаю командной строке в файле конфигурации. У меня также есть тот, который изменяет файлы ресурсов для Кода C++, если это на самом деле, что необходимо изменить.

$files = Get-ChildItem $lpath -recurse -filter *AssemblyInfo.cs -name

Foreach ($file in $files)
{
    $file = $lpath + "\" + $file

    $fileObject=get-item $file

    $fileObject.Set_IsReadOnly($False)

    $sr = new-object System.IO.StreamReader( $file, [System.Text.Encoding]::GetEncoding("utf-8") ) 
    $content = $sr.ReadToEnd()
    $sr.Close()

    $content = [Regex]::Replace( $content, '(?<=\[assembly: AssemblyVersion\("[0-9].[0-9].[0-9].)[0-9]?[0-9]?[0-9]', $buildnum);
    $content = [Regex]::Replace( $content, '(?<=\[assembly: AssemblyFileVersion\("[0-9].[0-9].[0-9].)[0-9]?[0-9]?[0-9]', $buildnum);

    $sw = new-object System.IO.StreamWriter( $file, $false, [System.Text.Encoding]::GetEncoding("utf-8") )
    $sw.Write( $content )
    $sw.Close()

    $fileObject.Set_IsReadOnly($True)
}
3
ответ дан 3 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: