.NET Framework - Autostart devenv + Build Solution

Asked By Holger Gothan
29-Apr-08 03:27 AM
Hi,

zu VS6-Zeiten hatte ich mir ein kleines Progrämmchen geschrieben,
dass VS gestartet hatte, per simuliertem File-DragDrop einen
Workspace geöffnet und per WM_KEYDOWN, FindWindow
etc. das BatchBuild angestoßen. Außerdem hatte ich noch den Prozess
überwacht, da VS6 häufig bei seinerAnfangsinitialisierung des
Workspaces abgestürzt ist.
Das ganze wa im Autostart und mein Chef hat einfach meinen Rechner
früh  gestartet. (Bis VS alle Abhängigkeiten etc. aktualisiert hatte und
wieder Reaktionsbereit war vergingen immer 30 Minuten - und dass
wenn VS nicht abgestürzt ist.)

Ein Teil der Gründe fällt ja mit meinem Umstieg auf VS2008 weg.
Selbst nach dem Öffnen meiner Großsolution kann ich eigentlich
gleich anfangen zu arbeiten.

Allerdings würde ich trotzdem gerne folgendes realisieren:
- Autostart devenv
- öffne solution
- wechsle auf "Release"
- "Build Solution"
- wechsle auf Debug
- "Build Solution"
- devenv soll offen bleiben!

Natürlich könnte ich sicherlich auch meinen VS6-Starter anpassen.
Aber gibt es vielleicht auch einen "direkten" Weg?

ps: Hat VS2008 eigentlich auch ein COM-Interface, so dass ich
dass builden/config wechsel auch per dokumentierter Schnittstellen
realisieren kann?
Wo könnte ich dazu Informationen finden?

Tschüß, Holger.
FindWindow
(1)
BatchBuild
(1)
AutoHotkey
(1)
DragDrop
(1)
AutoIt
(1)
SeinerAnfangsinitialisierung
(1)
Reaktionsbereit
(1)
Abhängigkeiten
(1)
  Jochen Kalmbach [MVP] replied...
29-Apr-08 03:37 AM
Hallo Holger!


Vermutlich im VS SDK!?

http://msdn2.microsoft.com/en-us/vsx/default.aspx
http://www.microsoft.com/downloads/details.aspx?familyid=30402623-93ca-479a-867c-04dc45164f5b&displaylang=en

--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
  Johann Obermayr replied...
29-Apr-08 03:40 AM
Holger Gothan schrieb:

Hallo,

starte devenv
starte hilfe
suche devenv und unter "syntax and list of switches"
hier hast du alle Infos

devenv /build Release "MySolution.sln"
devenv /rebuild Debug "MySolution.sln"

Jimmy
  Holger Gothan replied...
29-Apr-08 03:45 AM
Hi,

...

Es wird zwar tatsächlich gebuilded, aber devenv beendet
sich danach selber wieder. Aber ich wollte ja einen
Rechner haben wenn ich komme, auf dem das devenv
offen ist und alles gebuilded ist.
So kann ich immer sehen, ob dass was ich am Abend vorher
gemacht hatte evntl. noch Seiteneffekte hatte.

Tschüß, Holger.
  Martin Richter [MVP] replied...
29-Apr-08 04:53 AM
Hallo Holger!



1. Setze TFS ein. Dan kannst Du regelmäßige Builds automatisch schedulen.
2. Du kannst eine Log-Datei als Ausgabe einrichten.
3. Ich steuere DEVENV über einen Batch. Wenn der Build eines DEVENV
fehlschlägt wird der Exitcode entsprechend gesetzt und in eine Log-Datei
über den Batch zusätzlich ein mit einer Zeile Eintrag gemacht.
Ich habe damit den gesamten Build-Log und zusätzlich eine Kurzliste, der
Build die schief gegangen sind.

--
Martin Richter [MVP] WWJD   http://blog.m-ri.de
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com
  Holger Gothan replied...
29-Apr-08 05:12 AM
Hi,


Es ging mir nicht ums builden - diese Batches habe ich bereits.
Es geht darum, meinen Computer in einem definierten Zustand vorzufinden:

1) Ich starte Rechner
2) Ich starte meine Solution
3) ich wechsle auf Release
4) Build Solution
5) ich warte ......
6) ich wechsle auf Debug
7) Build Solution
8) ich warte .......
9) ich fange an zu arbeiten

das ganze soll aber so funktionieren
1) Mein Chef startet Rechner
2) Es wird die Solution geöffnet
3) Es werden die Debug+Release-Builds der Solution ausgeführt
4) Ich komme irgendwann
5) ich fange gleich an zu arbeiten

Unter VS6 war es "lebensnotwendig", da der Zeitbedarf
Starten des PC -> VS Starten -> kleine Änderung vornehmen -> Programm testen
bei 30-45 Minuten lag. Ich vermute mal, das VS sich extrem viel Zeit beim
Aufbau
der Projekt-Dependencies genommen hat.
Mittlerweile liegt der Zeitbedarf ja unter 5 Minuten - VS2008 sei Dank.

Allerdings habe ich mich an den Zusatznutzen gewöhnt. So konnte ich immer
sehen,
ob ich noch an anderen Projekten Änderungen vornehmen mußte, falls ich mal
was "zentrales" geändert hatte und dass ohne das "ich" Zeit investieren
mußte um
auf das Build-Ende zu warten.

Tschüß, Holger.
  Martin Richter [MVP] replied...
29-Apr-08 06:54 AM
Hallo Holger!

[snip]

Deine Arbeitsweise ist exotisch!
Schau Dir einfach mal AutoIt und AutoHotkey an!

--
Martin Richter [MVP] WWJD   http://blog.m-ri.de
program is its own hell!" The Tao of Programming
FAQ: http://www.mpdvc.de Samples: http://www.codeproject.com
Create New Account
help
VB .NET FindWindow error NotSupportedException .NET Framework Hi, I am facing problem with calling FindWindow at my coding:- Imports System.Runtime.InteropServices ' For DllImport Public Class Form1 Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As Long End Function Private Sub Button1_Click System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim llngHWnd As Long llngHWnd = FindWindow("TestWinAPI2", vbNullString) MsgBox(llngHWnd) End Sub End Class Visual Studio 2005 prompted me with error at row of "llngHWnd = FindWindow("TestWinAPI2", vbNullString)". Error displayed = NotSupportedException. Please help. Thanks in advance. .NET Compact Framework Discussions System Hand Ltd - .NET Components for Mobility Thanks Peter, it works perfectly now :) keywords: VB, .NET, FindWindow, error, NotSupportedException description: Hi, I am facing problem with calling FindWindow at my coding:- Imports System.Runtime.InteropServices ' For DllImport Public Class Form1 DllImport(Co
FindWindow fails .NET Framework Hello, I am trying to register my own unique window class. The successful (the window is displayed and there are no error messages), but when I use FindWindow, to try and find the registered window, the functions returns NULL How come the window registrtation is OK, but the Findwindow fails? BOOL CMyApp::InitInstance() { WNDCLASS wndcls; memset(&wndcls, NULL, sizeof(WNDCLASS)); / / start with NULL / / Specify my own class name for using FindWindow later wndcls.lpszClassName = _T("279CB4A9_E688_4280_9639_396697EC4FB8"); / / Register the new class and exit if it fails if CMainFrame::OnClose() { / / TODO: Add your message handler code here and / or call default CWnd* pWnd = FindWindow(T(_"279CB4A9_E688_4280_9639_396697EC4FB8"), NULL); / / pWnd = = NULL CDocument *pDoc = GetActiveDocument(); if (pWnd ! = NULL) pWnd-> PostMessage(WM_CLOSE the suggestions. However, I found a simple solution on-line. void CMainFrame::OnClose() { CWnd* pWnd = FindWindow(NULL, _T("My App Title")); if (pWnd ! = NULL) pWnd-> PostMessage(WM_CLOSE); CFrameWnd::OnClose(); } Thanks, -jc you create, the safest way is to "remember" the HWND when you create the window. FindWindow / FindWindowEx is should be used to find windows that belong to another task / thread. And http: / / www.mihai-nita.net - -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- - Replace _year_ with _ to get the real email keywords: FindWindow, fails description: Hello, I am trying to register my own unique window class. The registration
FindWindow is not working .NET Framework Dear coleagues, I am trying to call FindWindow function but it seems not to be working. It returns a loooooong value even if Imports System Imports System.Data Imports System.Windows.Forms Module Module1 'Declaration Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long in progress.Please wait.") Dim lVal, hWnd, softmaxMsg As Long hWnd = 0 softmaxMsg = 0 hWnd = FindWindow("SoftMaxPROMainWnd", "SoftMax Pro GxP") 'hWnd = FindWindow(vbNullString, "Notepad") If hWnd = 0 Then Console.WriteLine("OK: SoftMax Pro GxP connected.") 'Beep() Else URL:http: / / dotnet.mvps.org / > V B <URL:http: / / dotnet.mvps.org / dotnet / faqs / > keywords: FindWindow, is, not, working description: Dear coleagues, I am trying to call FindWindow function but it seems not to be working. It returns a loooooong value even if