Вызов действия кода, скомпилированного как x86, из рабочего потока в TFS build 2010 - PullRequest
1 голос
/ 19 января 2011

Фон

У нас есть необходимость или, по крайней мере, желание вызвать стороннюю DLL, которая будет загружаться / запускаться только при вызове из сборки .Net, скомпилированной как x86.Для совместимости мы обычно компилируем наши .Net программы как x86, так что в прошлом это не было проблемой.Я пытаюсь получить версию для x64, но она не выглядит многообещающей.

Реальная проблема

Когда я компилирую нашу активность кода как x86 вместо «Любой ЦП», агент сборки выдает ошибку, заявляющую, что он не может найти нашу активность кода.

Вопросы

  • Есть ли что-то особенное, что мне нужно сделать в рабочем потоке, чтобы сказать, что сборка действия кода - x86?

  • Можно ли заставить действие кода запускаться как x86, даже если оно скомпилировано? Любой ЦП?

  • Есть ли способ заставить весь рабочий поток работатькак x86?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2013

У нас была та же проблема, что одно действие кода в нашем рабочем процессе выполняло некоторую загрузку и отражение сборки для целей документации (в то время как в TFS 2012:)).

Мы создали небольшое решение для командной строки exe, связывающей все необходимые файлы кода активности cs. В exe мы называем активность с чем-то вроде:

        CreateSpecs createSpecsAction = new CreateSpecs();
        var Arguments = new Dictionary<string, object>
            {
                {"BinariesDirectory",BinariesDirectory},
                {"FileMask",FileMask},
                {"ExcludeFiles",ExcludeFiles},
                {"ResultFilePath",ResultFilePath}
            };

        var output = WorkflowInvoker.Invoke(createSpecsAction, Arguments);       

В нашем шаблоне рабочего процесса мы вызываем exe при сборке x86 и в противном случае выполняем обычный вызов действия. Для отладки активности мы переключаемся на AnyCPU.

0 голосов
/ 20 января 2011

TFS Build 2010 имеет 64 бита, что, вероятно, является причиной проблемы.

Но почему вы хотите скомпилировать код, который используется групповой сборкой, как сборку x86?Это код деятельности с использованием сторонних DLL?

...