我最近升级了一个解决方案,使用旧的xml格式的csproj文件到xproj弃用后的新版本。 即看起来像这样的格式:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
<AssemblyName>MyProject</AssemblyName>
<PackageId>MyProject</PackageId>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
<GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
<GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
</PropertyGroup>
</Project>
问题是这个解决方案包含很多已经停止工作的xml转换。 正如我所理解的那样,这些转换是由MyProject.wpp.targets文件启动的。我没有自己设置这个并且我没有那么多的知识,但是由于这个文件与旧的csproj文件的格式相同,我猜它可能是为什么它不起作用的原因但我不知道我知道。 任何帮助都非常适用于如何让它再次运作。
这就是今天wpp.target文件的样子
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="[MSBuild]\CommonConfigTransforms.xml"/>
<Import Project="[MSBuild]\BuildSpecificConfigTransforms.xml"/>
<Import Project="[MSBuild]\DeleteTempConfigFiles.xml"/>
<PropertyGroup>
<PrepareForBuildDependsOn>
$(PrepareForBuildDependsOn);
CommonConfigTransforms;
BuildSpecificConfigTransforms;
</PrepareForBuildDependsOn>
<BuildDependsOn>
$(BuildDependsOn);
DeleteTempConfigFiles
</BuildDependsOn>
</PropertyGroup>
</Project>
答案 0 :(得分:2)
来自Migrating tasks from old csproj to new csproj format #2746的MSBuild存储库的GitHub版本:
您必须更改Target以使其适合新方法(在这种情况下为 AfterTargets =“ PrepareForBuild” ),因此csproj的新部分应如下所示:
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="ApplyConfigurationConfigFile" AfterTargets="PrepareForBuild" Condition="Exists('App.$(Configuration).config')">
<ItemGroup>
<AppConfigWithTargetPath Remove="App.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
<TransformXml Source="App.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="App.$(Configuration).config" />
</Target>