我觉得@Frans 的答案太复杂了,下面是我在互联网上找到的代码。鉴于您已经设置好 app.config 转换并开始工作,请在文本编辑器中打开您的云项目 (.ccproj),找到以下行:
<Import Project="$(CloudExtensionsDir)Microsoft.WindowsAzure.targets" />
并在其后插入以下内容:
<!-- Get worker role transform start -->
<Target Name="CopyWorkerRoleConfigurations" AfterTargets="CopyWorkerRoleFiles">
<Copy SourceFiles="$(WorkerTargetDir)\YOUR-PROJECT-NAME.dll.config" DestinationFolder="$(IntermediateOutputPath)YOUR-PROJECT-NAME" OverwriteReadOnlyFiles="true" />
</Target>
<!-- Get worker role transform end -->
并将 YOUR-PROJECT-NAME 替换为您的工作项目名称。
更新
实际上,我找到了一种更好的方法(MSBuild 4+):如果您在 Azure 项目中拥有超过 1 个具有 app.config 转换的辅助角色,则上面的脚本将不起作用。这是更通用的方法:
<Target Name="CopyWorkerRoleConfigurations" AfterTargets="CopyWorkerRoleFiles">
<PropertyGroup>
<RootFolder>$([System.IO.Path]::GetDirectoryName($(MSBuildProjectDirectory)))</RootFolder>
</PropertyGroup>
<Copy SourceFiles="$(RootFolder)\%(ProjectName)\bin\$(Configuration)\%(EntryPoint).config" DestinationFolder="%(WorkerRoleReferences.OutputDir)" OverwriteReadOnlyFiles="true" />
</Target>