Spezifische Daten nicht einchecken

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen

doofer Titel, kann gern geändert werden ;-)

Oft hat man technische Zugangsdaten z.B. für Backendsysteme, welche aber nicht ins SCM-System eingecheckt werden sollten. Je nach Sprache und Plattform hat man verschiedene Möglichkeiten.

Visual Studio/C#/VB

Hierzu benötigt man 4 Dateien. Die normale Datei die man verwendet, z.B. Constants.cs:

    public static partial class Constants
    {
    }

Hierzu kommt eine extra Datei in der die privaten Attribute eingepflegt werden, Constants_private.cs:

    public static partial class Constants
    {
        public const string AMAZON_ACCESS_KEY = "";
        public const string AMAZON_ACCESS_SECRET = "";
        public const string AMAZON_ASSOCIATE_TAG = "";
    }

Diese Datei wird noch einmal unter einem anderen Namen abgelegt, alternativ kann man auch einen Link auf diese Datei legen, Constants_private.empty:

    public static partial class Constants
    {
        public const string AMAZON_ACCESS_KEY = "";
        public const string AMAZON_ACCESS_SECRET = "";
        public const string AMAZON_ASSOCIATE_TAG = "";
    }

Als letztes wird eine Datei erzeugt in der die Werte für die Attribute mit angegeben werden, Constants_private.priv:

    public static partial class Constants
    {
        public const string AMAZON_ACCESS_KEY = "asdasfggs";
        public const string AMAZON_ACCESS_SECRET = "234tgasdgasdr";
        public const string AMAZON_ASSOCIATE_TAG = "234dsdh-21";
    }

Jetzt muss nur noch ein PreBuild Event in Visual Studio angelegt werden, dieses kopiert für die Buildvorgang die richtigen Werte in die Klasse:

if EXIST "$(ProjectDir)\Constants_private.priv" copy "$(ProjectDir)\Constants_private.priv"  "$(ProjectDir)\Constants_private.cs"

Und ein PostBuild Event um diese wieder zu entfernen

if EXIST "$(ProjectDir)\Constants_private.empty" copy "$(ProjectDir)\Constants_private.empty" "$(ProjectDir)\Constants_private.cs"


Außer der Constants_private.priv kann jede Datei eingecheckt werden, fehlt die Datei kann aber trotzdem gebaut werden, z.B. im Buildsystem. Dieses kann die Datei aber auch von irgendwo laden. Wichtig ist nur dass die Constants_private.priv und Constants_private.emtpy nicht im VS Projekt eingetragen sind.


Java/Android

iOS/XCode