Я занимаюсь созданием CI-сборки. Я использую командную строку для построения наших решений VS2012, которые содержат много типов проектов (wpf, forms, MFC, C# и C++).Решение для построения командной строки vs Visual Studio 2012 build
Я использую следующую командную строку:
call "%VS110COMNTOOLS%\vsvars32.bat"
devenv.com SolutionName.sln /rebuild "Release|Mixed Platforms"
Если я смотрю на выходе сборки, все кажется хорошо. Тот же результат, что и при использовании VS и 100% успеха.
Однако исполняемый файл, построенный таким образом, имеет ошибки во время выполнения, в то время как то же самое решение, построенное с помощью Visual Studio, отлично работает.
Ошибка в InitializeComponent первого показанного WPF. Сообщение об ошибке указывает неверную строку версии. Я заметил разницу в сгенерированных файлов (XAML)
Командная строка сборки (не работает): Myview.g.cs
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/ProjectName;V3.9.1.*;component/Myview.xaml", System.UriKind.Relative);
#line 1 "..\..\Myview.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
VS 2012 сборки (рабочий): Myview.g.cs
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
public void InitializeComponent() {
if (_contentLoaded) {
return;
}
_contentLoaded = true;
System.Uri resourceLocater = new System.Uri("/ProjectName;component/Myview.xaml", System.UriKind.Relative);
#line 1 "..\..\Myview.xaml"
System.Windows.Application.LoadComponent(this, resourceLocater);
#line default
#line hidden
}
Я действительно не» t знать почему и как V3.9.1*
появляется в сгенерированном файле, но это, кажется, проблема. Как я могу это исправить? Все файлы, сгенерированные .xaml, имеют то же самое неправильное V3.9.1*
, когда я строю с помощью командной строки.
Я бы построил с msbuild.exe ........ не инструмент dev. На самом деле, я пробую все, что я НЕ могу установить Visual Studio на машине сборки. – granadaCoder
Изменение строительного инструмента на самом деле не является ответом, и MSBuild приносит другие проблемы. Я не считаю, что Visual Studio на машине OUR является проблемой. – cricardol
Установка VS на сборной машине устанавливает тонну «скрытых» зависимостей. Использование msbuild заставляет вас думать о них (как их получить и как их упаковывать) .... поскольку они обычно не находятся на «чистой» машине. Но каждому его. Удачи. – granadaCoder