La risposta più votata è perfetta così com'è, ma quelli di noi che hanno a che fare con esplosioni più grandi possono trarre vantaggio da questa risposta alternativa. Descrive una correzione analoga a livello di file.
L'avviso è causato da un elemento come questo:
<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>
... nel file di progetto (.csproj) che emette l'avviso. Notare il PublishState "Exclude"; questo elemento dice "per favore non pubblicare la DLL immaginaria"; questa è ovviamente un'istruzione inutile se non è presente alcuna DLL di questo tipo al momento della pubblicazione, ma causa anche l'avviso perché il processo di pubblicazione non può valutare l'identità del file.
È possibile rimuovere l'intero PublishFile
elemento per ogni elemento di distribuzione menzionato negli avvisi, a condizione che PublishState abbia "Exclude". Non rimuovere meccanicamente ogni elemento con PublishState "Exclude", perché se non ci fosse alcun avviso, il file è probabilmente disponibile al momento della pubblicazione e potrebbe finire per essere pubblicato, il che sarebbe una modifica del prodotto indesiderata purché tu lo desiderassi sbarazzarsi dell'avvertimento.