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.

È stato utile?

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:

http://www.diaryofaninja.com/blog/2012/09/13/net-20-mixed-mode-assemblies-in-visual-studio-net-45-test-projects

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top