2012-11-08 2 views
7

Ich habe versucht, Roslyn zu verwenden, um eine Lösungsdatei zu analysieren und programmgesteuert einen benutzerdefinierten Assembly-Verweis zu jedem Projekt in der Lösung hinzuzufügen.Wie programmiere ich programmgesteuert einen Assembly-Verweis zu einem Projekt?

Ich habe versucht, den folgenden Codeausschnitt verwendet das gleiche zu tun:

//The name of the DLL is customLib.dll 
var reference = MetadataReference.CreateAssemblyReference("customLib"); 
project = project.AddMetadataReference(reference); 

Es ist jedoch eine FileNotFoundException trifft, während die MetadataReference zu schaffen.

Also ist meine Frage: Wie gebe ich den Pfad an, in dem Roslyn nach der angegebenen DLL suchen muss?

Danke.

Antwort

11

MetadataReference.CreateAssemblyReference wird verwendet, um Verweise auf Baugruppen im GAC zu erhalten. Versuchen Sie das:

project = project.AddMetadataReference(new MetadataFileReference("<path>")); 
+0

Danke Jason. Es funktionierte. – jithinpt