2015-02-13 2 views
2

У меня есть VS 2012 Ultimate, и я пытаюсь добавить Fake. Щелкните правой кнопкой мыши на ссылке, выберите «Добавить сборку подделок».Ошибка при добавлении подделок в VS 2012

Но тогда я не могу построить проект, я получаю эту ошибку:

Error 1 The command ""C:\Program Files (x86)\Microsoft\Contracts\Bin\ccrewrite.exe" "@fccrewrite.rsp"" exited with code -1. [\vmware-host\Shared Folders\Documents\tfs\DefaultCollection\xxx\Workflow.Test\obj\Debug\Fakes\mxs\f.csproj] Workflow.Test

+4

Это сообщение об ошибке из сценариста Code Contracts и не обязательно связано с подделками. Поднимите многословие процесса сборки (Tools -> Options, Projects and Solutions -> Build and Run), затем просмотрите содержимое окна вывода (View -> Output, Show output from: Build) и посмотрите, есть ли что-либо релевантное там. Обязательно сначала очистите проект и создайте только основной проект, прежде чем создавать свой тестовый проект, содержащий подделки. Я не уверен, что CC и Fakes объединяются; обычно вам не нужно использовать оба в одном проекте. –

ответ

4

Эта ошибка происходит из Кодекса контрактов Rewriter, который имеет (или имел) a bug that prevents it from working over UNC paths.

Это связано с ошибкой перехода от конверсии, которая преобразует ведущие \\ в \. Вы можете заметить, что путь в квадратных скобках начинается с одной косой черты: [\vmware-host\Shared...

Обходной путь, указанный в приведенной выше ссылке, состоит в том, чтобы сопоставить диск с UNC-контуром и ссылаться на ваш проект с этого диска.

Следует также отметить, что ссылка указана с 2011 года. Возможно, изменения изменились в новых версиях расширения кодовых контрактов, но я могу подтвердить, что этот вопрос все еще присутствовал, когда я оценил кодовые контракты в середине 2014 года.

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

Смежные вопросы