使用SlowCheetah和自定义配置时Azure Worker角色配置问题

时间:2012-08-03 07:05:42

标签: configuration azure nlog azure-worker-roles slowcheetah

我们正在使用Nlog作为我们的Azure角色的工作者角色的日志记录工具。 它需要NLog.config文件。我们安装了“SlowCheetah - XML Transforms”,并进行了两次Debug / Release转换。

解决方案确实可以成功重建。

但是当我尝试运行时,我遇到了以下错误。 (我在我的一个Windows服务应用程序中使用了nolog.config的完全转换,并且在那里工作正常)。

  

错误163项目列表“OutputGroups”中的项目“bin \ Debug \ NLog.config”   没有为元数据“TargetPath”定义值。为了使用   这个元数据,要么通过指定限定它   %(OutputGroups.TargetPath),或确保此列表中的所有项目   定义此元数据的值。 C:\ Program Files   (x86)\ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Windows Azure   Tools \ 1.6 \ Microsoft.WindowsAzure.targets 2299 5 Insight.CloudWeb

2 个答案:

答案 0 :(得分:0)

我不知道这是否是由SlowCheetah扩展程序完成的,但你能否验证你的* .csproj文件是否包含与此类似的AfterCompile目标?

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

<UsingTask TaskName="TransformXml"
  AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />

<Target Name="AfterCompile" Condition="exists(’app.$(Configuration).config’)">
  <TransformXml Source="NLog.config"
    Destination="$(IntermediateOutputPath)$(TargetFileName).config"
    Transform="NLog.$(Configuration).config" />
  <ItemGroup>
    <AppConfigWithTargetPath Remove="NLog.config"/>
    <AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
      <TargetPath>$(TargetFileName).config</TargetPath>
    </AppConfigWithTargetPath>
  </ItemGroup>
</Target>

App.config文件转换下查看Oleg的博文.Config File Transformation以获取更多信息。

答案 1 :(得分:0)

我有一个解决方法。现在,您应该能够使用SlowCheetah转换app.config以及Azure Worker Roles的其他XML文件。一旦我得到修复验证,我将发布VS画廊的更新。

如果您想尝试修复,可以在https://dl.dropbox.com/u/40134810/SlowCheetah/issue-44/SlowCheetah-issue-44.zip下载更新的VSIX。如果您有兴趣对此进行跟进,请使用issue #44