5

J'utilise VS Community 2015, avec Setup Project extension. Je n'ai jamais vu ce problème fonctionner avec 2010. Le problème est que lorsque j'ajoute un projet à la sortie, la liste des dépendances détectées toutes les DLL que j'ai utilisées dans le projet, y compris celles intégrées:Le projet d'installation ajoute des assemblys .System .NET Framework intégrés à la sortie

enter image description here

Après je lance le programme d'installation, il procède alors d'installer une centaine de fichiers dll, y compris les fichiers qui devraient faire partie de .NET Framework, comme:

  • System.IO.dll
  • System.Linq. dll

Je me suis assuré que:

  • J'ai tous mes projets mis à 4.5.2 .NET
  • à l'intérieur du projet d'installation, je le cadre cible .NET défini sur 4.5.2 .NET
  • à l'intérieur du projet d'installation, j'ai la condition préalable définie sur .NET 4.5.2

Qu'est-ce que je fais mal? Comment puis-je obtenir l'installation pour installer uniquement les DLL qui ne font pas partie de. NET Framework (comme Caliburn, ou NLog). Merci.

EDIT 1: D'après la question 'Claudius', voici une liste des frameworks .NET supposément installés sur ma machine. Notez que j'essaie d'installer sur la même machine que je développe. Le dossier My/bin/Release ne contient aucun des répertoires .NET .System et l'application s'exécute correctement à partir de ce répertoire. enter image description here

EDIT 2: Trouvé une autre personne avec un problème similaire. Tristement non résolu: Visual Studio Setup Project: Huge list of dependencies

+1

La machine sur laquelle vous installez a-t-elle .NET 4.5.2? – Claudius

+0

@Claudius J'ai ajouté une capture d'écran des cadres installés à ma question. Je suis en train de déployer sur la même machine que je développe pour l'instant. Pourquoi le dossier bin/Release n'a-t-il pas besoin de ces fichiers système pour que l'application s'exécute? Le VS2015 les relie-t-il à partir d'un emplacement réservé à VS que le système d'exploitation ne connaît pas? – Eternal21

+0

@ Eternal21 Je suis confronté à la même situation.Avez-vous trouvé une solution ou exclu des fichiers est le chemin à parcourir? – Oscar

Répondre

1

Cela peut être un problème Visual Studio lié à l'utilisation de la sortie du projet. Si vous n'avez, par exemple, qu'une poignée de fichiers que vous souhaitez installer dans le dossier d'application, peut-être dans le GAC, ajoutez simplement ces fichiers individuels à ces emplacements dans la vue Système de fichiers sur la machine cible.

Cela peut également être lié au paramètre CopyLocal, je m'assurerais qu'il n'est pas défini pour les assemblys.

Je m'assurerais également que vous n'avez pas ce paramètre qui provoque le "Ajouter une référence" de Visual Studio pour inclure des assemblages du GAC au lieu des assemblys SDK appropriés.

0

Si vous sélectionnez un dll (par exemple System.IO) que vous êtes sûr qu'il est déjà dans le framework .NET, vous pouvez définir la propriété Exclude dans la fenêtre de propriétés à True. Le dll ne sera pas copié dans le fichier d'installation.