У меня есть активность службы рабочего процесса, которая показывает странное поведение.Первая проблема заключается в том, что если рабочий процесс открыт в конструкторе, и я выполняю полную перестройку, то я получаю сообщение компилятора, говорящее
warning MSB3061: Unable to delete file "E:\Work\etc.\MyAssembly.dll". Access to the path 'E:\Work\etc.\MyAssembly.dll' is denied.
Если я проверяю, что хранит дескриптор файла, это действительно devene.EXE.Если я закрою конструктор, я смогу выполнить восстановление.Вторая необычная вещь, которую я вижу, состоит в том, что пользовательские действия (которые находятся в отдельной сборке) не распознаются, опять же просто дизайнером.Поэтому, если я пытаюсь построить его, он говорит мне: «Не удалось найти тип« MyType »в сборке« MyOtherAssembly »».Если я открываю действие в представлении кода (то есть в представлении XML), то оно прекрасно работает и распознает все мои типы (как и должно быть, на них ссылаются правильно).Кроме того, на панели инструментов рабочего процесса появлялись активизации, но больше не делали этого.
Следует отметить, что проблема не только в конкретном рабочем процессе, над которым я работаю.Если я удаляю этот рабочий процесс и добавляю другой рабочий процесс службы, я вижу то же самое поведение, поэтому проблема как-то связана с самим проектом.Я попытался создать новый проект с нуля и добавить рабочий процесс службы, и это, кажется, работает, но я стремлюсь решить проблему с моим текущим проектом, так как он довольно большой.Кроме того, я сравнил ссылки на сборки в рабочем тестовом проекте с тем, который не работает, и все, что находится в рабочем объекте, также находится в нерабочем проекте.
Если это уместно, проект не был созданкак «Приложение службы рабочего процесса WCF» ... после рабочего процесса я добавил службу рабочего процесса (но когда я последний раз открывал дизайнер несколько месяцев назад, дизайнер работал нормально, как и служба).
[ОБНОВЛЕНИЕ] После того, как я попробовал все предложения и обнаружил, что ни одно из них не имеет никакого значения, я наконец сделал решающий шаг и объявил об удалении фрагментов моего проекта, чтобы посмотреть, что может быть причиной этой проблемы.Результаты оказались действительно странными, так что, надеюсь, кто-нибудь сможет помочь мне, когда я сузил проблему.
Удалив ссылки на проекты, я сузил проблему до одного проекта, на который ссылался мой WF-проект.Если бы я ссылался на этот проект и открыл WF, то проект WF не будет построен.Проект, «вызывающий» проблему, представлял собой простую библиотеку объектов передачи данных, без статических компоновщиков или чего-либо подобного, что могло бы заставить дизайнера WF создавать / удерживать ссылки.Я удалил все классы из этого проекта DTO, и проблема ушла.Затем я заявил, добавив обратно классы и пытаясь восстановить.В конце концов я попал в точку, где он перестает строить, но это кажется несколько случайным.Я добавляю обратно файл, и он прекращает сборку, удаляет этот файл, и он снова работает.Я начинаю удалять свойства из этого файла (все они представляют собой простые типы значений, в основном, целые и строки), и проект не собирается снова, пока все свойства не исчезнут.Если я добавлю какое-либо свойство в файл, сборка не будет работать.например,
public class TestUser
{
public int test {get; set;}
}
Сборка завершается неудачно с указанным классом, однако она работает со следующим классом
public class TestUser
{
private int test = 0
}
Совершенно странно !.Затем, следующее, что я сделал, это добавил нарушающий проект в новый проект WF-сервиса, и изначально я не вижу такого поведения.Однако, как только я установил решение для сборки с использованием x64, проблема возникает в новом решении.Поэтому проблема возникает только в сборках x64 с определенной комбинацией файлов из моего проекта DTO.Однако точные файлы кажутся случайными ... Я могу добавить новый класс, как указано выше, и он не работает.Однако, если я удаляю все другие классы из моего приложения DTO, он снова работает.Добавление их обратно один за другим, и в конечном итоге это снова дает сбой, но не тогда, когда я удаляю класс выше (то есть класс, который был проблемой, больше не является проблемой).
Суть в том, что это похоже на ошибку в конструкторе WF4 с рабочим процессом службы, когда для сборки установлено значение x64.Мне нужно больше экспериментировать, чтобы выяснить точную комбинацию обстоятельств, которые вызывают проблему, но любые идеи тем временем приветствуются!.