无法应用项目X的发布属性


90

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

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

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

Answers:


165

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

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


14
这是我搜索该问题并找到答案的两倍。最终我会学习。:p
Nick

4
Show all files是这里的关键。
MEMark

5
@NickSpreitzer第三次给我。这次,我什至对自己的评论感到惊讶。
MEMark

您还可以在处理“ PublishFile”部分的同时更新csproj文件。当然,必须非常小心地进行。
Jerome

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“ Exclude”; 该元素表示“请不要发布虚构的DLL”;如果在发布时周围没有此类DLL,则显然这是不必要的指令,但由于发布过程无法评估文件的身份,因此这也会引起警告。

您可以删除PublishFile警告中提到的每个部署项目的整个元素,只要它具有PublishState“ Exclude”。不要用PublishState“ Exclude”来机械地删除每个元素,因为如果没有关于它的警告,则该文件可能在发布时可用,并且最终可能会发布-只要您只想这样做,那将是不希望的产品更改。摆脱警告。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.