3

我正在使用 Microsoft.VisualStudio.SLowCheetah (v3.0.61) 包在构建期间将多个配置文件转换为发布版本。

最近我已将解决方案中的所有项目从 packages.config 迁移到包引用格式。之后,SlowCheetah 执行的转换在构建服务器上中断。如果从 Visual Studio 2017 (v 15.6.7) 本地发布到文件系统,一切正常。之前SlowCheetah 的所有目标都是在末尾直接导入的

*.csproj

文件。在包引用方法中,已使用包中的所有目标都合并到

obj/PROJECTNAME.csproj.nuget.g.targets

文件。此问题仅影响 Web 项目。(带有集成测试的项目中 App.config 文件的转换工作正常。)

我在构建服务器上使用下一个命令来恢复包:

nuget.exe restore "C:\PATH\Web.Site.sln" -Verbosity Normal -NonInteractive -ConfigFile C:\PATH\NuGet.Config

下一个用于构建解决方案:

msbuild.exe "C:\PATH\WizNG.App.Site.sln" /nologo /nr:false /p:DeployOnBuild=true /p:PublishProfile="FileSystem.pubxml" /p:platform="any cpu" /p:configuration="release" /p:VisualStudioVersion="15.0" /m /verbosity:normal

带有配置文件的 csproj 文件片段:

<Content Include="NLog.config">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
  <SubType>Designer</SubType>
  <TransformOnBuild>true</TransformOnBuild>
</Content>
<None Include="NLog.Debug.config">
  <DependentUpon>NLog.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<None Include="NLog.Local.config">
  <DependentUpon>NLog.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<None Include="NLog.Release.config">
  <DependentUpon>NLog.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<Content Include="Myconfig1.config">
  <SubType>Designer</SubType>
  <TransformOnBuild>true</TransformOnBuild>
</Content>
<None Include="Myconfig1.Local.config">
  <DependentUpon>Myconfig1.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<None Include="Myconfig1.Release.config">
  <DependentUpon>Myconfig1.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>
<None Include="Myconfig1.Debug.config">
  <DependentUpon>Myconfig1.config</DependentUpon>
  <IsTransformFile>True</IsTransformFile>
</None>

我正在使用 MSBuild v 15.0

更新 1

*.csproj 文件包含下一个导入:

 <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
 <Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />

经过一番调查,我注意到如果从

Microsoft.CSharp.targets 
Microsoft.WebApplication.targets

Microsoft.WebApplication.targets
Microsoft.CSharp.targets 

转型开始发挥作用。

这种变化是否有其他影响?

4

0 回答 0