2017-01-28 1 views
0

In anderen C# -Projekten wie Window Forms und WPF kann ich einfach kopieren Sie die gebaute Exe in andere Umgebung mit .net und ohne Fehler ausgeführt werden.Embed dlls und Inhalt in exe in Monogame

In MonoGame erfordert die EXE-Datei jedoch eine Menge DLLs und muss den Inhaltsordner erfolgreich ausgeführt werden.

Gibt es eine Möglichkeit, die DLLs und Inhalte in die EXE-Datei aufzunehmen?

Antwort

0

Eigentlich kann es durch 2 Schritte erreicht werden.

  1. Einbetten der DLLs.
  2. Einschließlich der Inhalte.

Einbetten der dlls

Dies kann leicht durch Costura.Fody NuGet mit der Installation erreicht werden.

Geben Sie die folgende Zeile in die

Console Package Manager
Install-Package Costura.Fody 

Quelle: Embedding DLLs in a compiled executable.

Einschließlich der Inhalte

  1. Kopieren Sie Ihre kompilierte Inhaltsdateien (.xnb Dateien und andere Inhalte), um Ihre Content Ordner.
  2. Wechseln Sie zur Projekteigenschaftsseite, und fügen Sie Ihre kompilierten Inhaltsdateien Ihren Ressourcen hinzu.
  3. Ersetzen Sie den Code unten:

    public Game1() 
    { 
        graphics = new GraphicsDeviceManager(this); 
        Content.RootDirectory = "Content"; 
    } 
    

    mit

    public Game1() 
    { 
        graphics = new GraphicsDeviceManager(this); 
        ResourceContentManager resxContent; 
        resxContent = new ResourceContentManager(Services, Resources.ResourceManager); 
        Content = resxContent; 
    } 
    
  4. Fertig! Sie können jetzt Inhalte mit der alten Methode

    Content.Load<Texture2D>("Image1"); 
    

Quelle laden: Loading Content Within a Game Library