Не работает передача переменных в подпроект

AndrewDev

Client
Регистрация
19.03.2021
Сообщения
82
Благодарностей
6
Баллы
8
Всем привет!
Сделал маленький под проект, в который необходимо передать одну переменную
Отталкиваясь от официальной вики:

Просто пишем следующий код в PM
string BrowselLaunchDir = project.Directory + @"\LaunchChrome5.zp";
project.Variables["path"].Value = "example";
var mapVars = new List<Tuple<string, string>>();
mapVars.Add(new Tuple<string, string>("path", "path"));
project.ExecuteProject(BrowselLaunchDir, mapVars, true, true,true);

Супер, все работает, проблем нету

Создаем голый VS проект, где ничего лишнего нету

85589

Полное сообщение:

Ошибка сериализации параметра http://tempuri.org/:args. Сообщение InnerException было "Тип "System.Collections.Generic.List`1[[System.Tuple`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" с именем контракта данных "ArrayOfTupleOfstringstring:http://schemas.datacontract.org/2004/07/System" не ожидается. Попробуйте использовать DataContractResolver, если вы используете DataContractSerializer, или добавьте любые статически неизвестные типы в список известных типов - например, используя атрибут KnownTypeAttribute или путем их добавления в список известных типов, передаваемый в сериализатор."


Изначально я начал всю эту канитель, потому что все еще актуален этот баг
 
Последнее редактирование:

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28
Актуально
 

Lico

Client
Регистрация
04.03.2020
Сообщения
56
Благодарностей
9
Баллы
8

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28

Lico

Client
Регистрация
04.03.2020
Сообщения
56
Благодарностей
9
Баллы
8
Эта ошибка из-за точки останова .Убери ее и попробуй ,такие же ошибки возникают при работае со всеми потоками сереализации ,десериализации
без точек останова то же самое. Из проекта PM тоже убрал все точки
 

Lico

Client
Регистрация
04.03.2020
Сообщения
56
Благодарностей
9
Баллы
8
Эта ошибка из-за точки останова .Убери ее и попробуй ,такие же ошибки возникают при работае со всеми потоками сереализации ,десериализации
У вас работает project.ExecuteProject(); ?
 

Azakim

Client
Регистрация
25.07.2021
Сообщения
165
Благодарностей
30
Баллы
28

Lico

Client
Регистрация
04.03.2020
Сообщения
56
Благодарностей
9
Баллы
8
Всем привет!
Сделал маленький под проект, в который необходимо передать одну переменную
Отталкиваясь от официальной вики:

Просто пишем следующий код в PM
string BrowselLaunchDir = project.Directory + @"\LaunchChrome5.zp";
project.Variables["path"].Value = "example";
var mapVars = new List<Tuple<string, string>>();
mapVars.Add(new Tuple<string, string>("path", "path"));
project.ExecuteProject(BrowselLaunchDir, mapVars, true, true,true);

Супер, все работает, проблем нету

Создаем голый VS проект, где ничего лишнего нету

Посмотреть вложение 85589

Полное сообщение:

Ошибка сериализации параметра http://tempuri.org/:args. Сообщение InnerException было "Тип "System.Collections.Generic.List`1[[System.Tuple`2[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" с именем контракта данных "ArrayOfTupleOfstringstring:http://schemas.datacontract.org/2004/07/System" не ожидается. Попробуйте использовать DataContractResolver, если вы используете DataContractSerializer, или добавьте любые статически неизвестные типы в список известных типов - например, используя атрибут KnownTypeAttribute или путем их добавления в список известных типов, передаваемый в сериализатор."


Изначально я начал всю эту канитель, потому что все еще актуален этот баг
Все, я порешал. Запуск project.ExecuteProject() не работает только если запускать в VS даже без точек останова. Зато работает, если собрать и запустить через кубик dll. С чем связана невозможность отладки через VS, не стал копать. Но не очень удобно, когда приходится собирать проект, закрывать PM, закидывать dll, снова открывать PM, а после запускать dll, чтобы отдалить написанное в VS.

помимо project.ExecuteProject() таким же образом себя ведет project.Context.Add().
соответственно любое взаимодействие с контекстом через VS не доступно для отладки.
 
  • Спасибо
Реакции: Azakim

Lico

Client
Регистрация
04.03.2020
Сообщения
56
Благодарностей
9
Баллы
8

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
Все, я порешал. Запуск project.ExecuteProject() не работает только если запускать в VS даже без точек останова. Зато работает, если собрать и запустить через кубик dll. С чем связана невозможность отладки через VS, не стал копать. Но не очень удобно, когда приходится собирать проект, закрывать PM, закидывать dll, снова открывать PM, а после запускать dll, чтобы отдалить написанное в VS.

помимо project.ExecuteProject() таким же образом себя ведет project.Context.Add().
соответственно любое взаимодействие с контекстом через VS не доступно для отладки.
ага, старый баг.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)