【问题标题】:MSBuild command line - add dll referenceMSBuild 命令行 - 添加 dll 引用
【发布时间】:2011-02-21 13:59:28
【问题描述】:

我使用 makefile 来编译我的 C# 项目。 在这个makefile中,我创建了一个调用csc.exe的库tools.dll,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文件的路径

【问题讨论】:

  • 您是否在问如何引用名称/位置未知但在同一构建步骤中构建并由同一构建脚本引用的程序集?否则你只是做了......

标签: c# dll msbuild reference


【解决方案1】:

其实你可以。

<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

【讨论】:

    【解决方案2】:

    你不能,msbuild 只适用于项目文件,这些文件已经包含所有需要的信息。

    如果您想自己启动编译并完全控制,请直接使用 csc.exe,在那里您可以使用/r:assembly 开关。

    【讨论】:

    • 感谢您的回答。我想使用 csc.exe,但它无法编译 .xaml 文件,而且我的 windows phone 7 项目中有一些 .xaml 文件。你知道我如何像 MSBuild 那样将 .xaml 文件解析为 .cs 文件吗?
    • 这是一个完全不同的问题。开始另一个。
    • 来自快速谷歌:你不能。 XAML 转换显然不能从命令行使用。
    猜你喜欢
    • 2011-03-19
    • 2012-10-04
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 2019-04-10
    • 2019-04-04
    • 1970-01-01
    相关资源
    最近更新 更多