Как мешать Visual Studio обновить ссылки на сборки?

Основная проблема: Вам необходимо изменить Interior.Color и .Font.Color объекта Range, а не адрес String. Также, как отмечено в комментариях, удалите And и поместите эти два пункта в отдельные строки.

Если бы вы сохранили первоначальный подход, это могло бы выглядеть так:

Dim rng as Range
...
Set rng = Cells(PlantRow, DateColumn)
...
rng.Interior.Color = RGB(0, 255, 0)
rng.Font.Color = RGB(0, 225, 0)

Другие проблемы :

  1. И PlantRow = Sheets("Expedite").Range("A3:A5").Find..., и [ 118] предположим, что PlantName и DateEntered действительно найдены, и выдаст ошибку, если они не найдены .
  2. Вы должны определить, какой Worksheet - при условии, что это Sheets("Expedite"), что Cells включены. В противном случае есть неявная ссылка на ActiveSheet.

С этими изменениями ваш код может выглядеть следующим образом:

Dim PlantName As String
Dim DateEntered As String

PlantName = Me.ComboBox1.Value
DateEntered = Me.TextBox5.Value

Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Expedite")

Dim plantRng As Range, dateRng As Range
Set plantRng = ws.Range("A3:A5").Find(PlantName)
Set dateRng = ws.Range("B2:BB2").Find(DateEntered)

If Not plantRng Is Nothing Then
    If Not dateRng Is Nothing Then
        Dim rng As Range
        Set rng = ws.Cells(plantRng.Row, dateRng.Column)
    Else
        MsgBox "Not found - try again!"
        Exit Sub
    End If
End If

If Me.Expedite_yes.Value = True Then
    rng.Interior.Color = RGB(0, 255, 0)
    rng.Font.Color = RGB(0, 225, 0)
ElseIf Me.Expedite_yes.Value = False Then
    rng.Interior.Color = RGB(255, 0, 0)
    rng.Font.Color = RGB(255, 0, 0)
End If
5
задан NotMe 24 October 2008 в 15:08
поделиться

3 ответа

Вот то, как мы принимаем меры против этого в моей компании. (Ваш пробег будет варьироваться!)

Любая бессистемность (или иначе non-GAC) ссылки прибывают из нашего dev сервера, который каждый разработчик отобразил на их W: диск. У нас есть общий каталог DLL с подкаталогами клиентом (или поставщик) и дальнейшими подкаталогами как соответствующий. Никакие DLLs никогда не хранятся в управлении исходным кодом, кроме license.dll по мере необходимости Infragistics иногда.

Для обеспеченных поставщиками библиотек (EntLib, Infragistics, и т.д.), как политика мы ссылаемся от W: диск. Период. Никто не разрешен ниоткуда еще сослаться. Это кодирует Подсказку в файлах проекта к общему пути.

Для внутренних библиотек (клиент и внутренние проекты), наш непрерывный процесс интеграции производит DLLs в соответствующее ответвление этого каталога - снова, куда все наши ссылки прибывают из.

Это действительно замедляет наше локальное время компиляции (для локальной отладки), поскольку VS автообновит их против сервера каждый раз. Это - раздражение (иногда, проект может занять 5 или 6 минут для создания локально), но это - необходимое зло для работы вокруг людей, использующих различные ссылки. Преимущество здесь состоит в том, что, как только кто-то регистрируется в коде для одной из тех ссылок, сервер CI начинает сборку, и все получают его довольно проклятый быстро.

Прием к этому является стабильным, повторяемым процессом сборки и непрерывным сервером интеграции. Мы используем CruiseControl.NET, интегрированный со сборками NAnt, но вставляем Ваш любимый сервер CI и создаем инструмент здесь.

До сих пор у нас были нулевые проблемы в результате этого процесса, кроме тех случаев, когда сервер сборки умирает, в то время как наша система управления исходным кодом (также известный как Икра Демона, посмотрите, столь многие мои недавние комментарии) выполняет большую многофайловую регистрацию. (Поскольку Икра Демона не поддерживает проведенные регистрации.) Однако это - очень редкое возникновение - возможно, один раз в 5 или 6 недель. И сила восстанавливает, сразу позже заботится о нем.

Просто некоторые мысли... Эта техника должна помешать людям завинчивать Ваше управление исходным кодом - и как добавленная премия, уменьшить размер Вашего управления исходным кодом, поскольку Вы не будете регистрироваться в DLLs, просто dll.refresh файлы.

4
ответ дан 14 December 2019 в 09:04
поделиться

Я соглашаюсь с с John на большинстве точек за исключением помещения Вашего dlls в управлении исходным кодом.

У меня обычно есть папка ThirdParty, которая будет затем иметь продукт поставщика и разбивки версии так, ajax инструментарий хранится в $/ThirdParty/Microsoft/AjaxToolkit / (некоторый номер версии). Мне нравится этот подход, потому что мы можем поместить маркировку на все артефакты, которые входят в создание сборки.

Другая идея могла бы быть к dll's в рамках проекта поэтому, если они получат последний из проекта, то они получат dlls.

2
ответ дан 14 December 2019 в 09:04
поделиться

Я не думаю, что это возможно.

При открытии файла проекта в текстовом редакторе, Вы будете видеть, что Visual Studio не хранит трудные ссылки на блоки, но она хранит "HintPath" вместо этого. Если ссылка не будет найдена там, то Visual Studio автоматически попробует GAC.

Это могла бы быть хорошая идея настроить непрерывный сервер интеграции (если у Вас уже не будет одного), то это будет действовать как система раннего оповещения для таких ситуаций.

1
ответ дан 14 December 2019 в 09:04
поделиться