TFS部署到Azure错误:找不到ClientPerfCountersInstaller.exe

TFS部署到Azure错误:找不到ClientPerfCountersInstaller.exe,azure,tfs,tfsbuild,Azure,Tfs,Tfsbuild,我将我们的实现配置为使用Azure缓存提供程序来维护所有云实例之间的会话状态,如下所述: 这在我的csdef文件上创建了一个新的启动任务,该任务始终失败,并出现以下错误: C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0\Microsoft.WindowsAzure.targets(987):CloudServices64:找不到名为“approot\bin\Microsoft.W

我将我们的实现配置为使用Azure缓存提供程序来维护所有云实例之间的会话状态,如下所述:

这在我的csdef文件上创建了一个新的启动任务,该任务始终失败,并出现以下错误:

C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0\Microsoft.WindowsAzure.targets(987):CloudServices64:找不到名为“approot\bin\Microsoft.WindowsAzure.Caching\ClientPerfCountersInstaller.exe”的文件,用于启动任务Microsoft.WindowsAzure.Caching\ClientPerfCountersInstaller.exe安装角色MyRole.Web。

nuget包和主文件夹中的.exe包含在TFS用于部署的源代码管理中

我发现前一个问题解决了同样的问题:


但接受的答案表示只删除安装缓存所需的.exe的启动任务

确保.exe标记为
CopyAlways
,以便将其复制到
\bin
目录中

要执行此操作,请在Visual Studio中右键单击.exe并选择“属性”。确保它看起来像这样:


我在专用缓存工作人员角色方面也遇到了类似的问题,但就我而言,Microsoft.WindowsAzure.Caching文件夹从未出现在VisualStudio中。最后,我不得不打开worker角色项目的.csproj文件,如下所示:

<None Include="Microsoft.WindowsAzure.Caching\ClientPerfCountersInstaller.exe.config">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Microsoft.WindowsAzure.Caching\ClientPerfCountersInstaller.exe">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="Microsoft.WindowsAzure.Caching\PerformanceCounters.xml">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>

总是
总是
总是

我将它与app.config文件放在同一个
标记中,现在它正在按其应该的方式进行部署。

您可以从C:\Program Files\Microsoft SDK\Windows Azure\.NET SDK\v2.0\ref\Caching目录引用exe和DLL,而不是使用Nuget。您需要将启动任务指向exe的正确位置。看起来它希望将exe设置为主项目目录下名为Microsoft.WindowsAzure.Caching的文件夹中的内容(在编译时它会将内容复制到bin目录)。这很奇怪,文件夹和文件都在那里:启动任务中exe的路径是什么?“似乎是”还是修复了问题?这里有类似的问题:我的工作者角色项目引用的类库引用了Microsoft.WindowsAzure.Caching V2.2.0.0,但没有此答案中提到的文件夹。解决方案:删除并再次添加带有NuGet数据包管理器的Microsoft.WindowsAzure.Caching.DLL,它为我创建了文件夹。我遇到了相同的问题,但生成操作也必须为“无”,并将其设置为“内容”。谢谢你的帮助!