我正在TFS 2012构建定义中构建Azure云服务应用程序。使用默认的云配置,一切正常。但是,当我在TargetProfile
参数中设置MSBuild
属性时,我收到以下错误。服务配置文件存在于项目中,我可以在项目属性中进行选择。
为了让构建识别非默认配置,我还需要做些什么吗?
/ t:发布/ p:PublishDir = \ buildserver \ builddrops \ LocA \ / p:TargetProfile = CloudLocA
C:\ Program Files(x86)\ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Windows Azure Tools \ 1.8 \ Microsoft.WindowsAzure.targets(353):找不到默认服务配置“ServiceConfiguration.cscfg”该项目。
答案 0 :(得分:5)
我弄清楚了,结果与TargetProfile
属性无关。我将构建定义设置为仅清理工作区输出。当我查看构建服务器上的sources文件夹时,我意识到它没有删除其他服务配置文件,因此无法找到我在TargetProfile
属性中指定的内容。我将干净的工作区设置更改为all,现在一切正常。
答案 1 :(得分:4)
您是否尝试将TargetProfile
绑定到$(Configuration)
?在我的上一个项目中,我使用以下设置配置了Azure项目,它运行正常:
...
<PropertyGroup>
<TargetProfile Condition="'$(TargetProfile)'==''">$(Configuration)</TargetProfile>
</PropertyGroup>
<!-- Items for the project -->
<ItemGroup>
<ServiceDefinition Include="ServiceDefinition.csdef">
<SubType>Designer</SubType>
</ServiceDefinition>
<None Include="ServiceDefinition.Debug.csdef">
<SubType>Designer</SubType>
<DependentUpon>ServiceDefinition.csdef</DependentUpon>
</None>
<None Include="ServiceDefinition.Demo.csdef">
<SubType>Designer</SubType>
<DependentUpon>ServiceDefinition.csdef</DependentUpon>
</None>
<None Include="ServiceDefinition.Release.csdef">
<SubType>Designer</SubType>
<DependentUpon>ServiceDefinition.csdef</DependentUpon>
</None>
<ServiceConfiguration Include="ServiceConfiguration.Debug.cscfg">
<SubType>Designer</SubType>
</ServiceConfiguration>
<ServiceConfiguration Include="ServiceConfiguration.Demo.cscfg">
<SubType>Designer</SubType>
</ServiceConfiguration>
<ServiceConfiguration Include="ServiceConfiguration.Release.cscfg">
<SubType>Designer</SubType>
</ServiceConfiguration>
</ItemGroup>
答案 2 :(得分:2)
最好的方法是更改项目ccproj中的服务配置前缀,添加yourprojectname.configurationname 点是救生员。
<ServiceConfigurationPrefix>yourproject.ServiceConfiguration</ServiceConfigurationPrefix>
将这些添加到项目组:
<ServiceDefinition Include="yourproject.ServiceDefinition.csdef" />
<ServiceConfiguration Include="yourproject.ServiceConfiguration.cscfg" />
确保已从其驻留的文件夹中重命名了cscfg文件。
重新加载