DLL ILMerge: assembly non unito correttamente, ancora elencato come riferimento esterno
-
05-07-2019 - |
Domanda
Nel processo di compilazione di uno strumento .NET C #, ho usato ILMerge per unire gli assembly in un unico exe.
Di recente ho aggiunto una nuova libreria di classi e ora ILMerge non funziona. Mi sono ricordato di averlo detto di unirmi nella nuova DLL!
Ora mi sta dando questo errore, che non capisco davvero:
ILMerge.Merge: l'assembly "DataObjects" non è stato unito correttamente. È ancora elencato come riferimento esterno nel target assemblaggio.
Tutti i riferimenti di assemblaggio che ho fatto usando riferimenti a "progetti", e non è fallito in passato.
Qualcuno può spiegare questo errore per me o suggerire una soluzione alternativa per favore?
Soluzione
Ho dovuto usare l'argomento / closed
. Secondo i documenti ufficiali :
chiuso
Se impostato prima di chiamare Merge, quindi la "chiusura transitiva" del gli assiemi di input vengono calcolati e aggiunti all'elenco degli assiemi di input. Un il montaggio è considerato parte del chiusura transitiva se lo è referenziato, direttamente o indirettamente, da uno degli originali assiemi di input specificati e ha un riferimento esterno a uno dei assiemi di input o uno dei assemblee che hanno un tale riferimento. Complicato, ma questa è la vita ...
Altri suggerimenti
Ho ricevuto un messaggio di errore simile quando provavo a pubblicare un'app Web che univa tutti gli output in un singolo assembly:
Si è verificato un errore durante l'unione degli assembly: ILMerge.Merge: l'assembly di destinazione si elenca come riferimento esterno.
Questo succede se il nome dell'assembly che stai unendo corrisponde al nome dell'assembly dell'applicazione web in Proprietà > Application
. La modifica del nome dell'assembly di output dovrebbe risolverlo.
Ho riscontrato questo errore e indicava il riferimento Microsoft.Xrm.Sdk che stavo unendo nella singola dll. Il problema è stato risolto quando ho impostato un altro riferimento, Microsoft.Xrm.Sdk.Deployment per unire anche nella DLL. La cosa divertente è che in un progetto separato ho avuto la prima fusione di riferimento e la seconda distribuzione non si fondeva & amp; non si lamentava affatto.