我使用makefile来编译我的C#项目。 在这个makefile中,我创建了一个库tools.dll,调用csc.exe,OK。
现在,我想在我的项目中使用这个.dll。 出于某些原因,我必须使用使用.csproj文件的MSBuild.exe。 在.csproj文件中,我添加了这一部分:
<Reference Include="TOOLS">
<HintPath>C:\Gen\Lib\TOOLS.dll</HintPath>
</Reference>
这很好用!
但我的问题是: 如何从MSBuild命令行添加tools.dll引用?
我需要它,在makefile中调用MSBuild.exe并为其提供tools.dll文件的路径
答案 0 :(得分:9)
其实你可以。
<Project InitialTargets="ValidateToolsDllExists" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="ValidateToolsDllExists">
<Error
Text=" The ToolsDllPath property must be set on the command line."
Condition="'$(ToolsDllPath)' == ''" />
<Error
Text=" The ToolsDllPath property must be set to the full path to tools.dll."
Condition="!Exists('$(ToolsDllPath)')" />
</Target>
<PropertyGroup>
<!-- Default path to tools.dll -->
<ToolsDllPath Condition="'$(ToolsDllPath)'==''">C:\Gen\Lib\TOOLS.dll</ToolsDllPath>
</PropertyGroup>
<ItemGroup>
<Reference Include="Tools">
<HintPath>$(ToolsDllPath)</HintPath>
</Reference>
</ItemGroup>
</Project>
使用自定义 tools.dll 构建项目使用此命令行:
msbuild.exe yourproject.csproj /p:Configuration=Release;Platform=AnyCPU /p:ToolsDllPath=C:\Gen\Tools\bin\Release\Tools.dll
答案 1 :(得分:0)
你不能,msbuild只适用于已包含所有必需信息的项目文件。
如果您想自己开始编译并完全控制,请直接使用csc.exe,您可以使用/r:assembly
开关。