Вопрос

В нашем проекте Visual Studio 2010 мы ссылаемся, среди прочего, на SmartAssembly.Attributes.dll и он правильно скопирован в Bin/Debug или Bin/Release папка наших локальных машин разработки.На сервере сборки это справедливо для всех остальных ссылок, но не для «SmartAssembly.Attributes.dll».Сборка успешна.

Что мне следует проверить?

Спасибо.

Это было полезно?

Решение

Откройте свой .csproj файл (или .vbproj файл) и найдите ссылку на сборку.Затем убедитесь, что путь подсказки по-прежнему действителен на вашем сервере сборки.Иногда VS2010 добавляет абсолютный путь подсказки вместо использования пути относительно пути. .csproj сам файл, поэтому буква диска может быть недействительной на другом компьютере.

Например, ссылка может выглядеть аналогично приведенной ниже (я составил весь приведенный ниже XML только для иллюстрации, и он НЕ действителен), а абсолютный путь подсказки может быть недействительным на сервере сборки (например,нет буквы диска д там):

<Reference
Include="SmartAssembly.Attributes, Version=8.0.0.0, 
       Culture=neutral, PublicKeyToken=b03f1f7f1ad5da3a,
       processorArchitecture=x86"> 
  <SpecificVersion>False</SpecificVersion>
  <Private>true<Private>

  <!-- The HintPath below should exist and be valid in your build server -->
  <HintPath>d:\temp\SmartAssembly.Attributes.dll<HintPath>
</Reference>

Вы можете изменить HintPath, чтобы сделать его относительным к .csproj файл и, следовательно, более общий.Например:

  <HintPath>..\libs\SmartAssembly.Attributes.dll<HintPath>

Другая проблема может заключаться в том, что <Private>true<Private> не существует.Этот атрибут отображается в CopyLocal свойство в Visual Studio, поэтому, если оно отсутствует в вашем .csproj, DLL не будет скопирована в bin\Debug или bin\Release от MSBuild.Видеть http://bronumski.blogspot.com/2009/06/project-reference-fun-and-games.html

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top