Toon posts:

[.NET] Referentie met Copy Local=True wordt niet gekopieerd

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een project in Visual Studio 2008 dat gebruik maakt van de assembly NHibernate. Deze assembly heeft géén referentie naar de assembly NHibernate.ProxyGenerators.CastleDynamicProxy maar deze is wel vereist (de assembly wordt middels reflectie geladen voor zover ik weet). Om aan deze eis te voldoen heb ik in Visual Studio aan het project ook een referentie toegevoegd naar NHibernate.ProxyGenerators.CastleDynamicProxy en hiervan de eigenschap Copy Local ingesteld op True. Het gevolg is dat in dit project de assembly keurig in de output folder verschijnt.

Maar... de assembly van het project heeft geen 'echte' referentie naar NHibernate.ProxyGenerators.CastleDynamicProxy, waarschijnlijk omdat er geen enkel type uit die assembly daadwerkelijk in de code gebruikt wordt. De compiler is slim genoeg om dan dus geen referentie in te bakken in de assembly. MSBuild kopieert de assembly alleen op basis van de waarde van Copy Local.

Nu heb ik een tweede project met een referentie naar de assembly uit het eerste project. In de output van dat tweede project verschijnt nu dus niet de NHibernate.ProxyGenerators.CastleDynamicProxy assembly. Zoals gezegd is deze wel nodig. Ik wil die niet handmatig kopieren en ook niet in de GAC zetten. Hoe los ik dit op?

Is er bijvoorbeeld een compiler optie of MSBuild configuratie optie, of moet ik expres een stukje code schrijven zodat er wel een 'harde' referentie ontstaat?

Bedankt!

Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

als ik jou was zou ik een goed gedocumenteerde (als in, waarom de class bestaat) class in je project maken die je nooit gebruikt.
kost je niks op runtime, en de hoeveelheid dat je binary groter word is verwaarloosbaar ;)

-niks-


Acties:
  • 0 Henk 'm!

  • Face_-_LeSS
  • Registratie: September 2004
  • Niet online
Je wilt dus dat wanneer het 2e project gebuild wordt, een dll die in de output folder van het 1e project staat, gekopieerd wordt naar de output folder van het 2e project?

In dat geval kan dat met post-build event commands.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
MLM schreef op dinsdag 16 december 2008 @ 13:01:
als ik jou was zou ik een goed gedocumenteerde (als in, waarom de class bestaat) class in je project maken die je nooit gebruikt.
kost je niks op runtime, en de hoeveelheid dat je binary groter word is verwaarloosbaar ;)
Ja, ik hoef eigenlijk alleen zoiets te doen

C#:
1
global::NHibernate.ProxyGenerators.CastleDynamicProxy.ProxyFactory factory;


Maar ja, dat staat zo raar...