2012-03-08 3 views
1

Я пытаюсь настроить машину для сборки и удалось запустить все. Это последний бит, за которым я застрял. Я попытался удалить/повторно установить ReportViewer 10, а также попытался установить версии 8 и 9, чтобы проверить, не устранит ли это проблему, но без успеха. Во всяком случае, вот ошибка:MSBuild странные проблемы с сборкой

c:\Program Files\Microsoft Visual Studio 9.0\ReportViewer\Microsoft.ReportViewer.WinForms.dll: error CS1684: Warning as Error: Reference to type Microsoft.ReportingServices.ReportProcessing.RenderingResult' claims it is defined in 'c:\ Program Files\Microsoft Visual Studio 10.0\ReportViewer\Microsoft.ReportViewer. Common.dll', but it could not be found

И точно так же,

c:\Program Files\Microsoft Visual Studio 9.0\ReportViewer\Microsoft.ReportViewer.WinForms.dll: error CS1684: Warning as Error: Reference to type 'Microsoft.SqlServer.ReportingServices2005.Execution.Warning' claims it is defined in 'c:\Program Files\Microsoft Visual Studio 10.0\ReportViewer\Microsoft.ReportViewer.Common.dll', but it could not be found

Кто-нибудь видел это раньше?

+0

Когда происходит эта ошибка? При установке ReportViewer? – Jeff

+0

Извините, я должен был быть более ясным: это происходит, когда я пытаюсь построить решение, которое ссылается на него. Однако я не могу изменить это решение. – user472875

+0

Существуют ли сборки в месте, на которое оно ссылается? 'c: \ Program Files \ Microsoft Visual Studio 10.0 \ ReportViewer \ Microsoft.ReportViewer.Common.dll' – Jeff

ответ

1

В Microsoft.ReportViewer.WinForms.dll существует определение класса, которое использует Microsoft.ReportingServices.ReportProcessing.RenderingResult в качестве базового класса;

public class foo : Microsoft.ReportingServices.ReportProcessing.RenderingResult 
{ 
} 

Вы используете этот класс foo где-то в своем коде. Класс RenderingResult определен в Microsoft.ReportViewer.Common.dll. Для этого класса требуется такая же версия RenderingResult. Поскольку вы используете версию Microsoft.ReportViewer.WinForms.dll 9.0 и версию Microsoft.ReportViewer.Common.dll версии 10.0, они не совпадают. RenderingResult отличается в версии 10.0, поэтому определение класса foo является неполным.

Для решения этой проблемы вам необходимо убедиться, что вы используете соответствующие сборки, например, вам может потребоваться вручную настроить HintPath в файле .csproj, чтобы исправить это.

+1

Спасибо за ответ. В случае, если у кого-либо возникнет такая проблема, ваш ответ правильный. Я все еще помню проблему, и она была решена путем изменения пути подсказки к правильной версии. Не изменяя путь подсказки, ссылка на неправильную DLL. – user472875