Командная строка MSBuild - добавить ссылку на dll - PullRequest
5 голосов
/ 21 февраля 2011

Я использую make-файл для компиляции своего проекта на C #.В этом make-файле я создаю библиотеку tools.dll с именем csc.exe, ОК.

Теперь я хочу использовать этот .dll в своем проекте.По некоторым причинам я должен использовать MSBuild.exe, который использует файл .csproj.В файле .csproj я добавил этот раздел:

<Reference Include="TOOLS">
  <HintPath>C:\Gen\Lib\TOOLS.dll</HintPath>
</Reference>

Это отлично работает!

Но у меня вопрос: как добавить ссылку tools.dll из командной строки MSBuild?

Мне нужно это, вызвать MSBuild.exe в makefile и указать путь к файлу tools.dll

Ответы [ 2 ]

10 голосов
/ 22 февраля 2011

На самом деле вы можете.

<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
0 голосов
/ 21 февраля 2011

Вы не можете, msbuild работает только с файлами проекта, которые уже содержат всю необходимую информацию.

Если вы хотите запустить сборку самостоятельно и иметь полный контроль, используйте csc.exe напрямую, там выможно использовать переключатель /r:assembly.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...