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

  • Автор темы Автор темы AndrewDev
  • Дата начала Дата начала

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 или путем их добавления в список известных типов, передаваемый в сериализатор."


Изначально я начал всю эту канитель, потому что все еще актуален этот баг
 
Последнее редактирование:
Актуально
 
Эта ошибка из-за точки останова .Убери ее и попробуй ,такие же ошибки возникают при работае со всеми потоками сереализации ,десериализации
без точек останова то же самое. Из проекта PM тоже убрал все точки
 
Эта ошибка из-за точки останова .Убери ее и попробуй ,такие же ошибки возникают при работае со всеми потоками сереализации ,десериализации
У вас работает project.ExecuteProject(); ?
 
Всем привет!
Сделал маленький под проект, в который необходимо передать одну переменную
Отталкиваясь от официальной вики:

Просто пишем следующий код в 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
Все, я порешал. Запуск project.ExecuteProject() не работает только если запускать в VS даже без точек останова. Зато работает, если собрать и запустить через кубик dll. С чем связана невозможность отладки через VS, не стал копать. Но не очень удобно, когда приходится собирать проект, закрывать PM, закидывать dll, снова открывать PM, а после запускать dll, чтобы отдалить написанное в VS.

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

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