SharpSVN e C # Problema
-
24-10-2019 - |
Domanda
Quando si cerca di aggiungere SharpSVN al mio progetto C #, la compilazione con le chiamate relative SharpSVN mi dà questo errore:
FileLoadException è stata gestita La modalità mista di assemblaggio è costruito contro la versione 'v2.0.50727' del runtime e non può essere caricato in runtime 4.0 senza informazioni di configurazione aggiuntive.
Quello che ho fatto è stato aggiungere i riferimenti dal file zip scaricato SharpSVN e ha aggiunto il
using SharpSvn;
Quando compilo che funziona benissimo, ma quando aggiungo:
string targetPath = "https://bobl/svn/ConsoleApplication1";
SvnTarget target;
SvnTarget.TryParse(targetPath, out target);
Si rompe con quell'errore. Ho cercato questo errore e non hanno avuto fortuna nel trovare una soluzione.
Soluzione
Lo SharpSVN assembly è un misto di montaggio costruita contro la versione 2.0 del CLR.
Pertanto, non può essere caricato in CLR versione 4.0.
È necessario modificare il progetto di destinazione .Net 3.5 (o precedente) nella proprietà del progetto.
Dal .Net 2.0, .Net 3.0 e .Net 3.5 tutto l'uso la versione 2.0 del CLR, funzionerà in una di queste versioni.
Altri suggerimenti
Aggiungi questo al vostro app.config se si desidera mantenere il targeting .NET 4:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
In questo modo il supporto di carico di assiemi modalità mista (principalmente C ++ / CLI assiemi contenenti sia il codice non gestito e gestito) costruite per una versione precedente del quadro.
Come accennato Julien è necessario aggiungere il codice di compatibilità per app.config del progetto o web.config:
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
Questa è cosa buona e giusta, ma se si hanno questo problema con un test runner (come MSTest) all'interno di Visual Studio, è in realtà necessario apportare questa modifica al file di configurazione del test runner.
ho scritto un post su questo problema in VS 2012:
In Visual Studio 2012, è necessario aggiungere il codice di avvio per il seguente file:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.executionengine86.exe.config