Создание сборки .NET, использующей Crystal Reports, на сервере сборки

Я пытаюсь создать сборку .NET, которая использует Crystal Reports на сервере сборки без установки Visual Studio или среды выполнения Crystal Reports.

Версия Crystal Reports, на которую мы ориентируемся в нашем коде, — это версия, поставляемая вместе с Visual Studio 2008, и мы используем MSBuild для сборки этого проекта.

Я скопировал то, что кажется всеми ссылками DLL в моем проекте, в папку с именем Assemblies на сервере сборки, и я попытался установить ссылочный путь в моем файле csproj.user, а также скопировав эту же группу свойств в мой проект файл, но все равно не повезло. Ошибка, которую я получаю, выглядит как пример ниже.

MyFile.cs(5,7): ошибка CS0246: не удалось найти тип или имя пространства имен «CrystalDecisions» (вам не хватает директивы using или ссылки на сборку?) [c:\MySolution\MyProject...]

Есть ли у кого-нибудь какие-либо предложения о том, как и должен ли я заставить это работать?


person jpierson    schedule 03.09.2010    source источник
comment
Вы установили все ссылки на сборки для локального копирования? вы можете проверить это на странице свойств ссылки   -  person jeroenh    schedule 03.09.2010


Ответы (1)


Похоже, я сам понял это после экспериментов с элементом для моих ссылок в файле проекта. Мои ссылки на сборки Crystal Reports теперь выглядят так, как показано в примере ниже.

<Reference Include="CrystalDecisions.CrystalReports.Engine, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304">
    <HintPath>$(MSBuildProjectDirectory)\..\Libraries\CrystalReports\CrystalDecisions.CrystalReports.Engine.dll</HintPath>
</Reference>
<Reference Include="CrystalDecisions.ReportSource, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304">
    <HintPath>$(MSBuildProjectDirectory)\..\Libraries\CrystalReports\CrystalDecisions.ReportSource.dll</HintPath>
</Reference>
<Reference Include="CrystalDecisions.Shared, Version=10.5.3700.0, Culture=neutral, PublicKeyToken=692fbea5521e1304">
    <HintPath>$(MSBuildProjectDirectory)\..\Libraries\CrystalReports\CrystalDecisions.Shared.dll</HintPath>
</Reference>

И что еще более важно, это работает!

person jpierson    schedule 03.09.2010
comment
Я сделал это, но также добавил ‹Private›False‹/Private› после каждого ‹/HintPath›, что останавливает копирование DLL Crystal в папку bin. В любом случае вся среда Crystal Runtime должна находиться на целевом компьютере. - person Alan Singfield; 14.05.2021