错误MSB4096:...没有为元数据定义值"名称"

时间:2015-10-17 06:57:35

标签: visual-studio azure msbuild teamcity

我正在尝试在团队城市上构建具有多个角色和webAPI项目的Azure云服务。该解决方案在VS 2013上构建良好,但在团队城市失败并出现以下错误。

[PrepareRoleItems] C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Windows Azure Tools\2.5\Microsoft.WindowsAzure.targets(1326, 5): error MSB4096: The item "C:\TeamCity\buildAgent\work\96a0cadf65a06070\projWebAPI\projWebAPI.csproj" in item list "ProjectReferenceWithConfiguration" does not define a value for metadata "Name".  In order to use this metadata, either qualify it by specifying %(ProjectReferenceWithConfiguration.Name), or ensure that all items in this list define a value for this metadata.

[12点22分45秒]

两个问题

Q1。如果有人在团队城市之前有这个问题,请告诉我如何解决它

Q2。如果没有,我想不要让团队城市建立sln而不是让视觉工作室去做。有没有办法从命令行调用visual studio,因此它构建了azure云服务sln。

3 个答案:

答案 0 :(得分:1)

我明白了。这是MSBuild无法正常构建的东西。

这个article很好地描述了问题和解决方案。

答案 1 :(得分:1)

我遇到了MSB4096错误,并尝试了各种方法使其消失。我认为这可能与解决方案的某些最新更改有关,因为已添加了新项目。我只还原了解决方案文件并重新构建了它。 MSB4096错误消失了,但是我得到了其他一些项目参考错误,这是可以预期的。然后,我“未还原”解决方案文件(即获得最新版本),然后重新构建解决方案。一切正常-没有MSB4096错误。 O_o

我想这相当于先将其关闭然后再打开。也许Visual Studio在某些地方缓存了一些数据,更改解决方案文件会强制其重新构建缓存。我不知道,但是如果您遇到这个问题,值得尝试...

答案 2 :(得分:-1)

这对我在Azure云服务中有所帮助;另一个项目已添加到解决方案。解决方案中应该只有网络/工作人员角色。

  

[...]我也可以通过删除解决方案文件中的依赖项来进行整理-删除像这样不必要的行-您的GUID将有所不同,但是使用VS对话框即可完成工作。 / p>

ProjectSection(ProjectDependencies) = postProject 
    {B79CE0B0-565B-4BC5-8D28-8463A05F0EDC} = {B79CE0B0-565B-4BC5-8D28-8463A05F0EDC}
EndProjectSection

来源:Answer to Question about Visual Studio *.sln file format,它本身引用了Microsoft forum discussion