Verbieten Sie die Veröffentlichung von Debug-Builds für die ClickOnce-Bereitstellung
-
09-06-2019 - |
Frage
Gibt es eine Möglichkeit, die Veröffentlichung von Debug-Builds mit ClickOnce zu verbieten?
Ich möchte nur Release-Builds zulassen, aber im Moment führt menschliches Versagen dazu, dass ein Debug-Build hin und wieder durchrutscht.
Wir veröffentlichen den Build in Visual Studio.
Lösung
Sie können beispielsweise eine Bedingung zur .csproj- oder .vbproj-Datei hinzufügen, die MSBuild beim Erstellen eines Builds überprüft.
Die Bedingung würde prüfen, ob eine Veröffentlichung stattfindet und prüfen, ob es sich bei dem Build um einen Debug-Build handelt, und dann beispielsweise ein externes Tool ausführen oder den Build-Prozess auf andere Weise unterbrechen oder zum Scheitern bringen.
Ein Beispiel könnte etwa so aussehen:
<Choose>
<When Condition=" '$(Configuration)'=='Debug' ">
<Exec Command="C:\foo.bat" ContinueOnError="false" />
</When>
</Choose>
Wobei foo.bat eine Batchdatei ist, die einen Wert ungleich Null zurückgibt, wodurch die Veröffentlichung verhindert wird.
Andere Tipps
Ich habe begonnen, die .csproj-Dateien so zu ändern, dass sie den folgenden Code enthalten, um einen Fehler für Debug-Bereitstellungen auszulösen und so die Bereitstellung effektiv zu verhindern:
<!-- The following makes sure we don’t try to publish a configuration that defines the DEBUG constant -->
<Target Name="BeforePublish">
<Error Condition="'$(DebugSymbols)' == 'true'" Text="You attempted to publish a configuration that defines the DEBUG constant!" />
</Target>
Platzieren Sie es einfach am Ende der Datei, direkt vor dem </Project>
Etikett.
(Originalquelle: http://www.nathanpjones.com/wp/2010/05/preventing-clickonce-publishing-a-debug-configuration/comment-page-1/#comment-625)
Ich habe eine andere Lösung gewählt, die für mich funktioniert hat:
Ich konnte meinen Build-Prozess nicht ändern.So tat ich Werkzeuge → Anpassen... und ändern Sie den Text der Aktion, indem Sie eine Warnung wie „Veröffentlichen [ZUM RELEASE KONFIGURIEREN!]“ hinzufügen und die Schaltfläche „Veröffentlichen“ neben der Konfigurationsoption Debug/Release platzieren.Es ist einfach!
Dadurch habe ich das Risiko menschlicher Fehler erheblich reduziert.Diese Knöpfe sollten immer zusammen sein.