ist meine erste Frage auf Stackoverflow, so Hallo :)T4-Vorlage und Assembly.Load
Ist es möglich, Montage durch Montage Namen zu laden mit Assembly.Load() in T4-Vorlage? Ich möchte es verwenden, um alle Typen mit ServiceContract-Attribut in geladenen Assembly zu erhalten.
Die gewünschte Baugruppe wird im Projekt referenziert, wo meine Vorlage ist. Ich fand heraus, dass
<#@ assembly name="$(TargetDir)\DesiredAssemblyName.dll" #>
var loadedAssembly = Assembly.GetAssembly(typeof(SomeType));
funktioniert, aber es ist scheint nicht wie eine gute Lösung. Außerdem möchte ich diese Vorlage nach dem Bauprozess zu transformieren, und wenn ich folgende Zeilen hinzufügen
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\
TextTemplating\v10.0\Microsoft.TextTemplating.targets"/>
<PropertyGroup>
<TransformOnBuild>true</TransformOnBuild>
</PropertyGroup>
<ItemGroup>
<!--Add VS\...\PublicAssemblies to the list of places
to look for assemblies used by templates.-->
<T4ReferencePath Include="..\Onii.Vespa.AppServer\"/>
</ItemGroup>
Lösung mit Assembly.GetAssembly CSPROJ funktioniert auch nicht. Vielen Dank für alle Vorschläge.
Haben Sie das gesehen? http://stackoverflow.com/questions/3434713/cant-reference-an-assembly-in-a-t4-template – devlife
Oh wow! Ihr Fall ist genau derselbe wie bei mir, bis auf die Überprüfung des wcf-Attributs! Hast du das gelöst? Ich versuche, eine Assembly manuell mithilfe von ShadowCopy zu laden, um Sperrprobleme bei den DLLs zu verhindern, die in der T4-Vorlage verwendet werden. – julealgon
@julealgon leider nicht. Ich mache es manuell, wenn ich weiß, dass sich das Ergebnis ändert. –