每当我们在主解决方案中进行构建时,我们都会收到以下警告:
无法为项目“microsoft.visualstudio.qualitytools.unittestframework”应用发布属性。
有没有人见过这样的事情?有想法该怎么解决这个吗?它发生在我们所有的开发人员机器上,也发生在我们的 TFS 构建服务器上。但是,它只出现在调试模式下。
每当我们在主解决方案中进行构建时,我们都会收到以下警告:
无法为项目“microsoft.visualstudio.qualitytools.unittestframework”应用发布属性。
有没有人见过这样的事情?有想法该怎么解决这个吗?它发生在我们所有的开发人员机器上,也发生在我们的 TFS 构建服务器上。但是,它只出现在调试模式下。
该问题似乎与 ClickOnce 有关。导航到项目,右键单击它并单击属性。转到发布选项卡并单击应用程序文件。选中“显示所有文件”复选框并滚动文件列表。最终,您会遇到带有黄色感叹号的文件。此文件是孤立的,需要删除。右键单击该文件,应该有一个删除选项。
现在构建解决方案,警告应该消失了。
投票最多的答案就目前而言是完美的,但我们这些处理更大爆发的人可能会从这个替代答案中受益。它描述了文件级别的类似修复。
警告是由这样的元素引起的:
<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 "Exclude" 机械地删除每个元素,因为如果没有关于它的警告,则该文件可能在发布时可用并且最终可能会发布 - 只要您只想这样做,这将是一个不需要的产品更改摆脱警告。