Мы разрабатываем приложение 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-Этот небольшой код очищает старые данные холста в интервале:
// 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, но мне не удалось.
Как я могу это сделать?