Все, что вам нужно сделать, так как вы читаете массив в обратном направлении (UBound
- LBound
), это выйти из цикла, как только вы найдете искомый текст, а не продолжать его. [113 ]
Sub FileSubTot
Dim arrFileLines()
Dim choice
choice="SUBTOT"
i = 0
'opens txt file and makes each line an element in an array called arrFileLines
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\stuff\etc\etc...", 1)
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
'iterates through the array looking for the word SUBTOT then grabs the subtotal value and compares to the (TTP)
For i = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
If InStr(arrFileLines(i), choice) <> 0 Then
Log.Message "Found " & choice
Log.Message arrFileLines(i)
Total=Split(arrFileLines(i)," ",-1)
Log.Message "TOTAL TO PAY: €"& Total(1)
Exit For ' This will exit the For Loop once the choice is found
End If
Next
End Sub
Мы используем CC.NET & MSBuild, чтобы создать и затем затем опубликовать к нашему dev и средам этапа, однако у нас нет нажатия живым на CruiseControl.NET, мы запускаем тот MSBuild вручную. Мы просто думали, что это будет путь к тому, чтобы заставлять кнопкой опубликовать живой ;) Потребовалось, вероятно, 2 или 3 изменения для получения нашего MSBuild право. Но теперь все находится в одном файле, и все основано на Целях и Свойствах, чтобы сделать всю работу. Приблизительно 6 месяцев назад, был тем, что должно быть последним обновлением, и это было нажатием мультисервера, таким образом, мы готовы к увеличению масштаба. Мы можем теперь продвинуть любую комбинацию частей к любой комбинации серверов. Таким образом, если мы хотим 5 серверов баз данных, 3 contenet сервера и 2 веб-сервера, у нас есть та способность. Никакая потребность использовать что-либо еще. MSBuild может сделать это.
Я использую MsBuild, чтобы создать, и разделить выполнений процесса сборки Wix для создания установщика (MSI), который используется для развертывания к производству.
Я использую MSBuild для создания довольно большого клиент-серверного приложения. Я использую InstallShield 2008 для создания отдельного набора для установки клиента и сервера
. Добавляя настраиваемую цель в процесс сборки, вы можете объединить создание установщиков в сборку.
Я бы порекомендовал вам создать и протестировать сборку и программу установки по отдельности, прежде чем пытаться интегрировать их.
Я создал систему развертывания, в которой Центральный координатор может:
- identify the right target server for a given component (e.g Windows service goes to a given server, web services go to another, etc.)
- perform a PsExec of a deployment MSBuild script on the target server
- the deployment MSBuild script is responsible for:
a) downloading the right component package (in my case a .zip)
b) backing up previous versions of the component
c) extracting the package to the right place
d) tailoring the installation steps to the type of component to deploy (e.g. needs to perform an Exec task of installutil.exe on a Windows service )
e) logging the result of the deployment
Эта система построена с использованием сочетания:
- core MSBuild tasks
- [Tigris MSBuild community tasks][1]
- [MS SDC tasks][2]
- and custom tasks
Система позволяет нам выполнять последовательное развертывание сложных приложений в многораздельных средах (например, DEV, QA, UAT и т. д.), состоящих из виртуальных серверов.