Veröffentlichungseigenschaften für Element X können nicht angewendet werden

89

Immer wenn wir unsere Hauptlösung einbauen, erhalten wir die folgende Warnung:

Veröffentlichungseigenschaften für das Element "microsoft.visualstudio.qualitytools.unittestframework" können nicht angewendet werden.

Hat jemand so etwas schon einmal gesehen? Irgendwelche Ideen, wie man das behebt? Dies geschieht auf allen unseren Entwicklercomputern und auch auf unserem TFS-Buildserver. Es wird jedoch nur im Debug-Modus angezeigt.

Jonathan Nixon
quelle

Antworten:

164

Es scheint, dass das Problem mit ClickOnce zusammenhängt. Navigieren Sie zum Projekt, klicken Sie mit der rechten Maustaste darauf und klicken Sie auf Eigenschaften. Gehen Sie zur Registerkarte Veröffentlichen und klicken Sie auf Anwendungsdateien. Aktivieren Sie das Kontrollkästchen "Alle Dateien anzeigen" und scrollen Sie durch die Liste der Dateien. Schließlich werden Sie auf die Datei stoßen, auf der sich ein gelbes Ausrufezeichen befindet. Diese Datei ist verwaist und muss entfernt werden. Klicken Sie mit der rechten Maustaste auf die Datei und es sollte eine Option zum Entfernen geben.

Erstellen Sie nun die Lösung und die Warnung sollte verschwunden sein.

Jonathan Nixon
quelle
13
Das ist zweimal, ich habe dieses Problem gegoogelt und diese Antwort gefunden. Irgendwann werde ich lernen. : p
Nick Spreitzer
4
Show all filesist der Schlüssel hier.
MEMark
4
@ NickSpreitzer Zum dritten Mal für mich. Diesmal war ich sogar von meinem eigenen Kommentar überrascht.
MEMark
Sie können Ihre csproj-Datei auch aktualisieren, indem Sie sich um den Abschnitt 'PublishFile' kümmern. Dies muss natürlich sehr sorgfältig erfolgen.
Jerome
3

Die am besten gewählte Antwort ist in der jetzigen Form perfekt, aber diejenigen von uns, die mit größeren Ausbrüchen zu tun haben, können von dieser alternativen Antwort profitieren. Es beschreibt eine analoge Korrektur auf Dateiebene.

Die Warnung wird durch ein Element wie das folgende verursacht:

<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>

... in der Projektdatei (.csproj), die die Warnung ausgibt. Beachten Sie den PublishState "Exclude"; Dieses Element lautet "Bitte veröffentlichen Sie die imaginäre DLL nicht". Dies ist offensichtlich eine unnötige Anweisung, wenn zum Zeitpunkt der Veröffentlichung keine solche DLL vorhanden ist, aber sie verursacht dann auch die Warnung, da der Veröffentlichungsprozess die Identität der Datei nicht bewerten kann.

Sie können das gesamte PublishFileElement für jedes in den Warnungen erwähnte Bereitstellungselement entfernen , sofern PublishState "Exclude" enthält. Entfernen Sie nicht jedes Element mit PublishState "Exclude" mechanisch, da die Datei, wenn keine Warnung angezeigt wurde, wahrscheinlich zum Zeitpunkt der Veröffentlichung verfügbar ist und möglicherweise veröffentlicht wird. Dies wäre eine unerwünschte Produktänderung, solange Sie dies nur wollten die Warnung loswerden.

Jirka Hanika
quelle