dotnet / standard

This repo is building the .NET Standard
3.07k stars 428 forks source link

Referencing netstandard 2.0 from WebSITE targeting .Net 4.8 #1771

Closed gregpakes closed 2 years ago

gregpakes commented 4 years ago

I am having an issue referencing packages that target .NetStandard 2.0 from my webSITE (not application) project which targets .Net 4.8.

I see the following error:

warning MSB3268: The primary reference "D:\a\1\s\iSAMS.Web.Controls\bin\Release\net48\iSAMS.Web.Controls.dll" could not be resolved because it has an indirect dependency on the framework assembly "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v4.8". To resolve this problem, either remove the reference "D:\a\1\s\iSAMS.Web.Controls\bin\Release\net48\iSAMS.Web.Controls.dll" or retarget your application to a framework version which contains "netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51".

I have already added an assembly reference to the web.config as follows but it doesn't work:

<assemblies>
          <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />
....

What am I doing wrong?

snakorse commented 4 years ago

Seems not reasonable, can you explain the packages dependency chain in details, or just upload a demo reproducing the case.

joperezr commented 4 years ago

binding redirect won't fix the issue here, I believe that the problem here is with the way that you added the reference to this package. Do you mind sharing a binlog with the build failure so that we can take a closer look and see what the problem is?

To produce a binlog, just run msbuild.exe yourProject.csproj /t:rebuild /bl from a developer command prompt and share the produced msbuild.binlog that got generated on the directory you ran the command from.

gregpakes commented 4 years ago

Yep will do. I tried to reproduce the issue in a blank site and am unable to at the moment, so I was going through the differences to see what they are.

I'll produce the binlog. It will be big. Is there a way to send it privately?

joperezr commented 4 years ago

if possible it would be better to upload here for future auditing purposes in case it is necessary, but if you prefer you can just send it to my email instead.

gregpakes commented 4 years ago

I'll check to see if there's anything sensitive in there.

gregpakes commented 4 years ago

msbuild.zip

Attached.

joperezr commented 4 years ago

So the issue seems to be related to the custom logic you are using in your website metaproject. Seems like that project is doing a bunch of manual custom logic that the SDK is supposed to do in traditional projects, one of which is that you are manually calling the ResolveAssemblyReferences Task. Traditional SDK projects will call the target called ResolveAssemblyReferences (which internally will call ResolveAssemblyReferences Task) before calling build, which will also make sure it calls another SDK target called ImplicitlyExpandDesignTimeFacades which will verify if your project requires the netstandard facades and if so it will make sure it adds a reference to it and pass that to the compiler. Because of the custom logic on your project is bypassing all of this, you never pass the netstandard facades to the compiler and hence you get the warning/issue. If you check closely, you'll see that other projects in your solution (like iSAMS.Entity.Custom.csproj) are targeting .NET Framework 4.8 and are able to use .NET Standard packages, that one in particular is using System.Collections.Immutable package as a transitive dependency which only has a netstandard2.0 assembly in it and you are able to compile just fine because this project doesn't have the custom logic and is following the SDK targets which are ensuring that the right facades are added when needed. I'm not familiar with your project structure and didn't go much into the details but my suggestion would be to either get rid of that metaproject if possible or if not then at least limiting the custom logic you use in it, as a lot of the .NET Standard support on .NET Framework projects relies heavily on the fact of letting the SDK run it's targets.

gregpakes commented 4 years ago

Thanks for this.

Are you able to see where this custom logic is? I have checked our custom targets and we don't override ResolveAssemblyReferences.

I really appreciate your input on this.

gregpakes commented 4 years ago

The iSAMS.Website.metaproj is not something we create. It is created by msbuild automatically. I'm not aware that we have any control over that?

joperezr commented 4 years ago

Are you able to see where this custom logic is? I have checked our custom targets and we don't override ResolveAssemblyReferences.

The metaproj has this target which is the one being invoked and if you check what it's doing is calling ResolveAssemblyReferences manually:

  <Target Name="Rebuild" Condition=" ('$(CurrentSolutionConfigurationContents)' != '') and (false or ( ('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Any CPU') ) or ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') )) " DependsOnTargets="GetFrameworkPathAndRedistList">
    <MSBuild Projects="@(ProjectReference)" Targets="Rebuild" BuildInParallel="True" Properties="BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" SkipNonexistentProjects="%(ProjectReference.SkipNonexistentProjects)" />
    <MSBuild Projects="iSAMSDLL\iSAMS.vbproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_0" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_0)" AdditionalMetadata="Guid={29686A6F-8CBA-4F2A-B443-1E6BB237FE10}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Web.Controls\iSAMS.Web.Controls.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_1" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_1)" AdditionalMetadata="Guid={F8847BC6-0D9C-4D22-B430-CDF5AAB64947}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.CS.Common\iSAMS.CS.Common.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_2" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_2)" AdditionalMetadata="Guid={5A78F4D2-BEF8-4EBE-A58F-54E6F1465E95}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Security\iSAMS.Security.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_3" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_3)" AdditionalMetadata="Guid={3BD5185C-A3F2-4B5C-B268-07D58FAED5FA}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Services\iSAMS.Services.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_4" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_4)" AdditionalMetadata="Guid={A27D9371-BEBB-4BCE-A834-3199E5EE4D90}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Runtime\iSAMS.Runtime.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_5" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_5)" AdditionalMetadata="Guid={CBC54CE6-C72B-4F63-928B-0C5B8AA2D82E}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.FeeBilling.ExternalAccounts\iSAMS.FeeBilling.ExternalAccounts.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_6" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_6)" AdditionalMetadata="Guid={75D4CAF7-4863-4DFC-BC76-6A48CB697FD8}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Api\iSAMS.Api.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_7" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_7)" AdditionalMetadata="Guid={DC1C5C04-0F33-41DF-A996-0064FC858684}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Api.Entities\iSAMS.Api.Entities.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_8" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_8)" AdditionalMetadata="Guid={5E9FCE54-9470-4B22-B7AC-40B4E22C3568}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Api.Composition\iSAMS.Api.Composition.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_9" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_9)" AdditionalMetadata="Guid={3443A362-D250-4D84-8125-30B9CD04DE80}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Security.Core\iSAMS.Security.Core.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_10" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_10)" AdditionalMetadata="Guid={57A46097-B32C-4845-B9D7-31705BF3DFB7}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Entity.Custom\iSAMS.Entity.Custom.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_11" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_11)" AdditionalMetadata="Guid={93AA8BC2-1C01-4CFC-80DF-8BA620211686}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.DependencyInjection\iSAMS.DependencyInjection.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_12" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_12)" AdditionalMetadata="Guid={8E9160A0-069B-443E-AD23-D7FBBD16B0B6}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <MSBuild Projects="iSAMS.Website.Logic\iSAMS.Website.Logic.csproj" Targets="GetTargetPath" Properties="Configuration=Debug; Platform=AnyCPU; BuildingSolutionFile=true; CurrentSolutionConfigurationContents=$(CurrentSolutionConfigurationContents); SolutionDir=$(SolutionDir); SolutionExt=$(SolutionExt); SolutionFileName=$(SolutionFileName); SolutionName=$(SolutionName); SolutionPath=$(SolutionPath)" ToolsVersion="$(ProjectToolsVersion)">
      <Output TaskParameter="TargetOutputs" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_13" />
    </MSBuild>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_13)" AdditionalMetadata="Guid={9dd764db-8d4a-4a57-81fb-17e3a30b00be}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_0)" AdditionalMetadata="Guid={29686A6F-8CBA-4F2A-B443-1E6BB237FE10}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_1)" AdditionalMetadata="Guid={F8847BC6-0D9C-4D22-B430-CDF5AAB64947}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_2)" AdditionalMetadata="Guid={5A78F4D2-BEF8-4EBE-A58F-54E6F1465E95}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_3)" AdditionalMetadata="Guid={3BD5185C-A3F2-4B5C-B268-07D58FAED5FA}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_4)" AdditionalMetadata="Guid={A27D9371-BEBB-4BCE-A834-3199E5EE4D90}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_5)" AdditionalMetadata="Guid={CBC54CE6-C72B-4F63-928B-0C5B8AA2D82E}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_6)" AdditionalMetadata="Guid={75D4CAF7-4863-4DFC-BC76-6A48CB697FD8}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_7)" AdditionalMetadata="Guid={DC1C5C04-0F33-41DF-A996-0064FC858684}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_8)" AdditionalMetadata="Guid={5E9FCE54-9470-4B22-B7AC-40B4E22C3568}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_9)" AdditionalMetadata="Guid={3443A362-D250-4D84-8125-30B9CD04DE80}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_10)" AdditionalMetadata="Guid={57A46097-B32C-4845-B9D7-31705BF3DFB7}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_11)" AdditionalMetadata="Guid={93AA8BC2-1C01-4CFC-80DF-8BA620211686}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_12)" AdditionalMetadata="Guid={8E9160A0-069B-443E-AD23-D7FBBD16B0B6}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_13)" AdditionalMetadata="Guid={9dd764db-8d4a-4a57-81fb-17e3a30b00be}">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CreateItem>
    <CreateItem Include="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetPhysicalPath)\Bin\*.refresh">
      <Output TaskParameter="Include" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_RefreshFile" />
    </CreateItem>
    <ReadLinesFromFile Condition=" '%(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_RefreshFile.Identity)' != '' " File="%(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_RefreshFile.Identity)">
      <Output TaskParameter="Lines" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_ReferenceRelPath" />
    </ReadLinesFromFile>
    <CombinePath BasePath="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetPhysicalPath)" Paths="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_ReferenceRelPath)">
      <Output TaskParameter="CombinedPaths" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild" />
    </CombinePath>
    <Copy Condition="!Exists('%(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild.Identity)')" ContinueOnError="true" SourceFiles="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild->'%(FullPath)')" DestinationFolder="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetPhysicalPath)\Bin\" />
    <GetReferenceAssemblyPaths TargetFrameworkMoniker=".NETFramework,Version=v4.8" RootPath="$(TargetFrameworkRootPath)">
      <Output TaskParameter="ReferenceAssemblyPaths" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B__TargetFrameworkDirectories" />
      <Output TaskParameter="FullFrameworkReferenceAssemblyPaths" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B__FullFrameworkReferenceAssemblyPaths" />
    </GetReferenceAssemblyPaths>
    <ResolveAssemblyReference Condition="Exists('%(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild.Identity)')" Assemblies="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild->'%(FullPath)')" TargetFrameworkDirectories="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B__TargetFrameworkDirectories)" FullFrameworkFolders="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B__FullFrameworkReferenceAssemblyPaths)" SearchPaths="{RawFileName};{TargetFrameworkDirectory};{GAC}" FindDependencies="true" FindSatellites="true" FindSerializationAssemblies="true" FindRelatedFiles="true" TargetFrameworkMoniker=".NETFramework,Version=v4.8">
      <Output TaskParameter="CopyLocalFiles" ItemName="Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_CopyLocalFiles" />
    </ResolveAssemblyReference>
    <Copy Condition="(false) or ('$(AspNetConfiguration)' == 'Debug') or ('$(AspNetConfiguration)' == 'Release')" SourceFiles="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_CopyLocalFiles)" DestinationFiles="@(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_References_Rebuild_CopyLocalFiles->'$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetPhysicalPath)\Bin\%(DestinationSubDirectory)%(Filename)%(Extension)')" />
    <AspNetCompiler Condition="(false) or ('$(AspNetConfiguration)' == 'Debug') or ('$(AspNetConfiguration)' == 'Release')" VirtualPath="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetVirtualPath)" PhysicalPath="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetPhysicalPath)" TargetPath="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetTargetPath)" Force="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetForce)" Updateable="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetUpdateable)" Debug="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetDebug)" KeyFile="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetKeyFile)" KeyContainer="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetKeyContainer)" DelaySign="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetDelaySign)" AllowPartiallyTrustedCallers="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetAPTCA)" FixedNames="$(Project_5E37CC9E-772F-46F6-809F-33DD0AEDB68B_AspNetFixedNames)" ToolPath="C:\Windows\Microsoft.NET\Framework\v4.0.30319" />
    <Message Condition="!((false) or ('$(AspNetConfiguration)' == 'Debug') or ('$(AspNetConfiguration)' == 'Release'))" Text="Skipping because the &quot;$(AspNetConfiguration)&quot; configuration is not supported for this web project.  You can use the AspNetConfiguration property to override the configuration used for building web projects, by adding /p:AspNetConfiguration=&lt;value&gt; to the command line. Currently web projects only support Debug and Release configurations." />
  </Target>

The iSAMS.Website.metaproj is not something we create. It is created by msbuild automatically. I'm not aware that we have any control over that?

Seems like this might be created by the aspnet compiler which unfortunately I'm not very familiar with. @Tratcher are you familiar with who owns the aspnet compiler so that they can take a look at this?

Tratcher commented 4 years ago

The site targets .NET 4.8, but is it using System.Web or AspNetCore?

gregpakes commented 4 years ago

@Tratcher I’m not following the question. This site does not use AspNetCore.

Tratcher commented 4 years ago

Just checking, they use very different infrastructure. I'll forward this to the right group.

gregpakes commented 4 years ago

@Tratcher - Any news?

gregpakes commented 4 years ago

Any news on this - we are still blocked here.

AJH16 commented 2 years ago

We are having this same issue. Even more oddly, on our debug build we were able to resolve this by doing a Visual Studio build after clearing bin/obj folders and it works now from MSBuild, however, the release build continues to fail even after making trying the same process that worked for debug.

AJH16 commented 2 years ago

Further detail, by copying the files that were present in the bin, obj and precompiledweb folders from the dev/debug build path to the QA/release build path, I was able to get the msbuild execution to run as well. I have no idea what actually fixed it on the dev/debug build, but clearly there is something that is causing bad state and making aspnet_compiler go nuts.

AJH16 commented 2 years ago

Further update, I was able to track this down to another post that suggested adding a private reference to netstandard on each of the libraries that is giving a warning before the failure. By adding a netstandard reference to every single one of them, I was able to get this problem to correct. Presumably this is something that VS's build is able to handle, but the msbuild version of the process does not take it in to account unless it's manually specified on every single project.

terrajobst commented 2 years ago

This issue is related to VS's web tooling rather than with .NET Standard. Since VS isn't open source, I cannot transfer the issue anywhere meaningfully on GitHub. Please submit the issue via VS's Send Feedback menu item and it will get assigned to the correct team.

Apologies for the ping pong.