Регистрация DLL, на которые ссылаются COM, на сервере построения

Мы разрабатываем приложение C #, которое ссылается на несколько COM-библиотек (например, AutoIT).

Я включаю все компоненты, на которые имеются ссылки в системе управления версиями, в папку « Libs » 3-ьей вечеринки.

Проблема в том, что библиотека COM не имеет свойства HintPath в файле .csproj, и я предполагаю, что они должны быть зарегистрированы вручную с помощью regsvr32 (или с помощью сценария какого-либо рода).

В настоящее время я ищу создание скрипта MSBuild, который будет выполняться перед каждым построением, однако я не смог выяснить, следует ли вручную вызывать regsvr32.exe или использовать некоторые предопределенные задачи MSBuild?

В настоящее время это то, что я попытался проверить:

 <?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <ItemGroup>
    <MyAssemblies Include="D:\*.dll" />
  </ItemGroup>
  <Target Name="Build">
    <RegisterAssembly
      Assemblies="@(MyAssemblies)" >
    </RegisterAssembly>
  </Target>
</Project>

Это порождает ошибки, которые библиотеки DLL, которые я поместил в данную папку, недействительны

Что является хорошим решением для этой проблемы?

EDIT:

Проекты, ссылающиеся на COM dlls, имеют что-то похожее на это в файле .csproj:

<COMReference Include="AutoItX3Lib">
      <Guid>{F8937E53-D444-4E71-9275-35B64210CC3B}</Guid>
      <VersionMajor>1</VersionMajor>
      <VersionMinor>0</VersionMinor>
      <Lcid>0</Lcid>
      <WrapperTool>tlbimp</WrapperTool>
      <Isolated>False</Isolated>
    </COMReference>

Это не включает в себя путь подсказки, как другие управляемые сборки, поэтому на сервере построения не найдена указанная COM DLL.

При регистрации COM DLL на сервере построения с помощью REGSVR32 построение выполняется успешно.

-121--1033590- заполнение холста Стиль в интервале с прозрачностью/непрозрачностью Этот небольшой код очищает старые данные холста в интервале ://начальный интервал ctx.save (); ctx.fillStyle = «rgba (0, 0, 0, 0,2)»; ctx.fillRect (0, 0, ctx.width, ctx.height); ctx.restore (); //некоторые розыгрыши...

Этот небольшой код очищает старые данные холста в интервале:

// start interval
ctx.save();
    ctx.fillStyle = "rgba(0, 0, 0, 0.2)";
    ctx.fillRect(0, 0, ctx.width, ctx.height);
ctx.restore();
//some draw code for new graph
...
//end interval

Моя рабочая область становится черной, потому что я устанавливаю черный цвет заливки (rgba (0, 0, 0, .2)), но мне нужен прозрачный фон, а не черный.

Я попробовал использовать startAlpha и imagePutData, но мне не удалось.

Как я могу это сделать?

13
задан user951114 18 September 2011 в 10:34
поделиться