Problema di compilazione con dll condivise: "unable to load referenced...

mercoledì 06 aprile 2011 - 11.08
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Visual Studio 2010

lukepet Profilo | Junior Member

Ho un problema con Visual Studio che mi sta facendo impazzire.

Vi spiego la situazione. Ho due soluzioni (A e B) che contengono una serie di class library vb.net; nel post-build event degli assembly della soluzione A viene eseguito uno script che copia le dll generate su una cartella esterna che conterrà tutte le dll generate. Gli assembly della soluzione B referenziano le dll della soluzione A dalla cartella esterna su cui sono state precedentemente copiate.

Detto ciò, ho il seguente problema...

quando entrambe le soluzioni sono aperte e faccio un build della soluzione A, la soluzione B va in palla e sembra perdere tutti i riferimenti alle dll, a questo punto se io provo a fare il build della soluzione B ho una sfilza di errori, tra i quali una serie di messaggi "Unable to load referenced library" per le dll che arrivano dalla soluzione A. Se io però chiudo la soluzione B, la riapro e rifaccio il build, funziona tutto. Questa situazione non si presenta sempre, ma spesse volte ed è molto fastidioso lavorare con questa noia!

Dalle varie prove che ho fatto sembra che questo strano comportamento si presenti solo con gli assembly basati su vb.net, medesime situazioni con assembly c# non mi hanno mai dato problemi.

A titolo informativo...uso Visual Studio 2010 e gli assembly sono basati su .NET 4.0.

C'è qualcuno che sa dirmi quale potrebbe essere il problema?

StefanoRicci Profilo | Junior Member

non puoi creare un unica soluzione in cui apri entrambi i progetti, in questo modo viene compilato e messo in automatico tutto nella directory del progetto principale....
--------------------------------------

IDE: Visual Studio 2008 Professional Edition
IDE: Visual Studio 2010 Express

lukepet Profilo | Junior Member

Alla fine in qualche modo sono riuscito a risolvere...anche se non ho ben capito il motivo.

Non potevo inserire tutti i progetti in un'unica solution per una serie di questioni che non sto qui ad elencare, ma comunque ho risolto in questo modo...

nel momento in cui non riuscivo a compilare la soluzione B, mi sono accorto che se andavo nella directory delle dll condivise e modificavo gli attributi della cartella e poi riprovavo a compilare allora tutto andava liscio...non chiedetemi perchè, ma in questo modo mi funziona.

Detto ciò ho semplicemente inserito nel pre-build event della solution una chiamata ad uno script che esegue il comando:
attrib -A dll_frame\*.dll

dove "dll_frame" è la cartella delle mie dll condivise. In questo modo non ho avuto più il problema.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5