MSBuild 14.0 (the version included with Visual Studio 2015) logs warnings (MSB4078) when building a solution which contains SSDT projects (rptproj or dwproj projects). For example:
warning MSB4078: The project file "Reports.rptproj" is not supported by MSBuild and cannot be built.
This is fine, MSBuild does not support SSDT projects, and we have to fall back to building them with Visual Studio (i.e. devenv.com
). See, for example, this answer.
When using MSBuild 15.0 (the version included with Visual Studio 2017), however, building the same solution file gives the following error:
Reports.rptproj(3,3): error MSB4067: The element <State> beneath element <Project> is unrecognized.
While I could remove the SSDT projects from the build configuration, that is not ideal, as I want them to be built when building the solution from within Visual Studio.
Is there a way to downgrade the error MSB4067 to a warning, or to skip certain projects when building a solution?
Update (October 2017)
The latest version of Microsoft Reporting Services Projects for Visual Studio (1.18) adds MSBuild support for SSRS projects. With this installed, SSRS projects can be updated to a format supported by MSBuild, which prevents this problem from happening.
Original Answer
This is a bug in MSBuild 15, labelled for fix in "foundation update 2".
A workaround as given in the GitHub issue thread by one of the MSBuild maintainers is:
Place a file with these contents next to your
.sln
file with the special name:
after.{yoursolutionname}.sln.targets
<Project InitialTargets="WorkAroundMSBuild2064">
<Target Name="WorkAroundMSBuild2064">
<!-- Work around https://github.com/Microsoft/msbuild/issues/2064 by
removing *.rptproj from the generated solution metaproject. -->
<ItemGroup>
<ProjectReference Remove="%(ProjectReference.Identity)"
Condition="'@(ProjectReference->'%(Extension)')' == '.rptproj'" />
</ItemGroup>
</Target>
</Project>
This seems to work provided that there are no Project Dependencies from other .csproj
projects to the .rptproj
projects.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With