Resolve References to Assemblies in GAC, Do Like This.
Point: Use <Output TaskParameter=”ResolvedFiles” ItemName=”Foo”/>
See Also <http://msdn2.microsoft.com/en-us/library/9ad3f294.aspx>
(Japanese)<http://msdn2.microsoft.com/ja-jp/library/9ad3f294(VS.80).aspx>
<?xml version=”1.0″ encoding=”utf-8″ ?>
<Project DefaultTargets=”Build”
xmlns=”http://schemas.microsoft.com/developer/msbuild/2003″>
<ItemGroup>
<!– Source Files –>
<CSFile Include=”*.cs” />
<!– Intermediate Files –>
<CleanTarget Include=”*~” />
<CleanTarget Include=”*.pdb” />
<CleanTarget Include=”*.exe” />
<!– References –>
<Reference Include=”Microsoft.Office.Interop.Excel” />
</ItemGroup>
<!– Resolve –>
<Target Name=”Resolve”>
<ResolveAssemblyReference
Assemblies=”@(Reference)”
SearchPaths=”{GAC}”>
<Output
TaskParameter=”ResolvedFiles”
ItemName=”ResolvedAssemblyPath”
/>
</ResolveAssemblyReference>
<!–
<Message
Text=”The output file is @(ResolvedAssemblyPath)”
/>
–>
</Target>
<!– Compile with CSharp Compiler –>
<Target Name=”Build”
DependsOnTargets=”Resolve”
>
<CSC
Nologo=”true”
Sources=”@(CSFile)”
TargetType=”exe”
References=”@(ResolvedAssemblyPath)”
OutputAssembly=”$(MSbuildProjectName).exe”
EmitDebugInformation=”true”
DebugType=”full”
/>
</Target>
<Target Name=”Clean”>
<Delete Files=”@(CleanTarget)” />
</Target>
<!– # End of Project# –>
</Project>