Не вдається застосувати властивості публікації до елемента X


90

Щоразу, коли ми робимо вбудовування нашого основного рішення, ми отримуємо таке попередження:

Не вдається застосувати властивості публікації до елемента "microsoft.visualstudio.qualitytools.unittestframework".

Хтось раніше бачив щось подібне? Будь-які ідеї щодо того, як це виправити? Це трапляється на всіх наших розробницьких машинах, а також на нашому сервері збірки TFS. Однак він відображається лише в режимі налагодження.

Відповіді:


165

Здається, проблема пов’язана з ClickOnce. Перейдіть до проекту, клацніть правою кнопкою миші та клацніть на властивості. Перейдіть на вкладку Опублікувати та натисніть Файли програм. Поставте прапорець "Показати всі файли" та прокрутіть список файлів. Згодом ви натрапите на файл, на якому є жовтий знак оклику. Цей файл осиротів і його потрібно видалити. Клацніть правою кнопкою миші на файлі, і повинна бути опція видалення.

Тепер побудуйте рішення, і попередження повинно зникнути.


14
Це вже двічі я гуглив цю проблему і знайшов цю відповідь. Згодом я навчусь. : p
Нік Шпрейцер

4
Show all filesтут ключ.
ПАМ’ЯТКА

5
@NickSpreitzer Втретє для мене. Цього разу я навіть був здивований власним коментарем.
ПАМ’ЯТКА

Ви також можете оновити файл csproj, дбаючи про розділ "PublishFile". Звичайно, це потрібно робити дуже обережно.
Джером,

3

Відповідь, яка отримала найбільшу кількість голосів, ідеальна, як вона є, але ті, хто має справу із більшими спалахами, можуть отримати вигоду з цієї альтернативної відповіді. Він описує аналогічне виправлення на рівні файлу.

Попередження викликане таким елементом:

<PublishFile Include="THIS IS USUALLY SOME IMAGINARY DLL">
  <Visible>False</Visible>
  <Group>
  </Group>
  <TargetPath>
  </TargetPath>
  <PublishState>Exclude</PublishState>
  <IncludeHash>True</IncludeHash>
  <FileType>Assembly</FileType>
</PublishFile>

... у файлі проекту (.csproj), що видає попередження. Зверніть увагу на PublishState "Виключити"; цей елемент говорить "будь ласка, не публікуйте уявну DLL"; це, очевидно, непотрібна інструкція, якщо під час публікації таких DLL немає де-небудь, але це також викликає попередження, оскільки процес публікації не може оцінити ідентичність файлу.

Ви можете видалити весь PublishFileелемент для кожного елемента розгортання, згаданого в попередженнях, якщо він має PublishState "Виключити". Не видаляйте механічно всі елементи за допомогою PublishState "Виключити", тому що, якщо про це не було попередження, файл, ймовірно, доступний під час публікації, і він може закінчитися опублікованим - що було б небажаною зміною продукту, якщо ви лише хотіли позбутися попередження.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.