2014-04-03 23 views
7

Per iniziare: Sono un principiante assoluto. Ho due progetti in un'unica soluzione. Un progetto è un'applicazione console, chiamata dall'applicazione Windows Form. Ora voglio aggiungere questi a un eseguibile. Mi è stato detto che era possibile con Fody/Costura. L'ho scaricato e aggiunto il codice IncludeAssemblies al file xml. Tuttavia, se vado nella cartella di debug, ci sono ancora i due eseguibili separatamente (a parte alcuni nuovi file generati) L'eseguibile salva in un altro posto o ho fatto qualcosa di sbagliato?Problemi con Fody/Costura

risposta

4

Potrebbe essere che Fody/Costura abbia già unito i file DLL separati (assembly .NET) nell'EXE. Non si cura di eliminarli per te. Si può facilmente verificare se questo è il caso semplicemente copiando l'eseguibile dalla directory di output insieme a qualsiasi altra dipendenza oltre agli assembly, e vedere se viene eseguito.

+0

Inoltre, naturalmente, è possibile utilizzare un ispettore di montaggio come Reflector per vedere nella copia locale di riferimento assemblee sono stati incorporati come risorse in il tuo exe/dll finale. – kkahl

7

A partire dalla versione 1.5, Costura pulisce automaticamente la directory.

Per disabilitare questo è ora disponibile un'impostazione nella configurazione. https://github.com/Fody/Costura#disablecleanup

+0

Mille grazie per il link! – Elisa

+2

Il comando PowerShell di cui sopra non funziona – sudhAnsu63

1
<Target 
    AfterTargets="AfterBuild;NonWinFodyTarget" 
    Name="CleanReferenceCopyLocalPaths" > 
    <Delete Files="@(ReferenceCopyLocalPaths->'$(OutDir)%(DestinationSubDirectory)%(Filename)%(Extension)')" /> 
</Target> 

nel file di progetto dovrebbe funzionare anche per ripulire i duplicati