Frage

In Visual Studio (2008) ist es möglich, das Post-Build-Ereignis für ein C ++ Projekt zu zwingen, selbst zu laufen, wenn das Projekt ist up-to-date?

Insbesondere habe ich ein Projekt, das einen COM-in-Process-Server-DLL baut. Das Projekt hat einen Post-Build-Schritt, den "regsvr32.exe $ (TargetPath)" läuft. Diese läuft fein auf einem „Rebuild“, sondern läuft auf einem „Build“ nur dann, wenn Änderungen an der Projektquelle vorgenommen.

Wenn ich ein „Build“ tun, ohne Änderungen vorzunehmen, Visual Studio berichtet lediglich, dass das Projekt ist up-to-date und tut nichts - das Post-Build-Ereignis nicht ausgeführt wird. Gibt es eine Möglichkeit, dass ich das Ereignis zwingen kann, in dieser Situation zu laufen? Dies ist notwendig, da, obwohl die DLL selbst ist up-to-date, kann nicht die Registrierungsinformation sein.

War es hilfreich?

Lösung

Sie können den Custom Build Step Eigenschaftenseite eine Batch-Datei einzurichten auszuführen. Dies läuft, wenn die angegebene Datei in dem Ausgänge Einstellung nicht gefunden, oder ist out-of-date. Geben Sie einfach einige nicht vorhandene Datei gibt, und die benutzerdefinierte Build-Schritt immer ausgeführt wird. Es läuft auch wenn Ihr Projekt ist up-to-date, da die Ausgabedatei nicht gefunden wird.

Andere Tipps

Mit dieser DisableFastUpToDateCheck

Sehen Sie ein Beispiel:

<PropertyGroup>
    <PostBuildEvent>IF  EXIST C:\Projects\Copy_Files_To_Instance.ps1 ( powershell -file C:\Projects\Copy_Files_To_Instance.ps1)</PostBuildEvent>
    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>

Die Registrierungsinformation wird weitgehend bestimmt durch das, was ist in der .rgs Datei. Wenn diese Datei verändert wird das Projekt gebaut werden. Ich bin nicht sicher, wie sonst COM-Registrierung, ohne dass das Projekt schmutzig ändern kann. Haben Sie etwas dagegen mehr Details über Ihre besondere Situation bereitstellt?

In Visual Studio 2017 (vielleicht auch andere Versionen), für C # -Projekten (nicht für C ++ Projekte pro OP tatsächlichen Frage geprüft) gibt es eine Option für „Führen Sie die Post-Build-Event:“ und ist eine Option „Immer“, die die Postbuild selbst wird ausgeführt, wenn sich nichts geändert hat, anstatt einfach nur berichten, dass das Projekt auf dem neuesten Stand ist bis:

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top