2017-01-28 3 views
0

Dans d'autres projets C# tels que Window Forms et WPF, je peux simplement copier l'exe construit dans un autre environnement avec .net et exécuter sans erreurs.Intégrer dlls et contenus dans exe en monogame

Toutefois, dans MonoGame, le fichier exe nécessite un grand nombre de DLL et nécessite le dossier de contenu pour s'exécuter avec succès.

Existe-t-il un moyen d'inclure les dll et le contenu à l'intérieur de l'exe?

Répondre

0

En fait, il peut être réalisé en 2 étapes.

  1. Intégration DLLs.
  2. Y compris le contenu.

Intégrer les dll

Ceci peut être facilement réalisé en installant Costura.Fody en utilisant NuGet.

Tapez la ligne suivante à la console Package Manager

Install-Package Costura.Fody 

Source: Embedding DLLs in a compiled executable.

Y compris le contenu

  1. Copiez vos fichiers de contenu compilé (.xnb fichiers et autres contenus) dans votre dossier Content.
  2. Accédez à la page de propriétés du projet et ajoutez vos fichiers de contenu compilés à vos ressources.
  3. Remplacer le code ci-dessous:

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

    avec

    public Game1() 
    { 
        graphics = new GraphicsDeviceManager(this); 
        ResourceContentManager resxContent; 
        resxContent = new ResourceContentManager(Services, Resources.ResourceManager); 
        Content = resxContent; 
    } 
    
  4. Fini! Vous pouvez maintenant charger le contenu en utilisant l'ancienne méthode

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

Source: Loading Content Within a Game Library