97

每当我们在主解决方案中进行构建时,我们都会收到以下警告:

无法为项目“microsoft.visualstudio.qualitytools.unittestframework”应用发布属性。

有没有人见过这样的事情?有想法该怎么解决这个吗?它发生在我们所有的开发人员机器上,也发生在我们的 TFS 构建服务器上。但是,它只出现在调试模式下。

4

2 回答 2

182

该问题似乎与 ClickOnce 有关。导航到项目,右键单击它并单击属性。转到发布选项卡并单击应用程序文件。选中“显示所有文件”复选框并滚动文件列表。最终,您会遇到带有黄色感叹号的文件。此文件是孤立的,需要删除。右键单击该文件,应该有一个删除选项。

现在构建解决方案,警告应该消失了。

于 2012-02-15T14:31:31.257 回答
5

投票最多的答案就目前而言是完美的,但我们这些处理更大爆发的人可能会从这个替代答案中受益。它描述了文件级别的类似修复。

警告是由这样的元素引起的:

<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" 机械地删除每个元素,因为如果没有关于它的警告,则该文件可能在发布时可用并且最终可能会发布 - 只要您只想这样做,这将是一个不需要的产品更改摆脱警告。

于 2020-01-29T11:11:32.343 回答