Azure / azure-sdk-for-net

This repository is for active development of the Azure SDK for .NET. For consumers of the SDK we recommend visiting our public developer docs at https://learn.microsoft.com/dotnet/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-net.
MIT License
5.57k stars 4.83k forks source link

Azure.Core, Version=1.25 is trying to load System.Text.Json, Version=4.0.1.2 #30414

Closed mike-sherrane closed 2 years ago

mike-sherrane commented 2 years ago

This is happening in an ASP.NET 4.8 MVC 5 app. The same code works fine if I revert back to Azure.Core, Version=1.14

Fusion Log:

=== Pre-bind state information === LOG: DisplayName = System.Text.Json, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 (Fully-specified) LOG: Appbase = file:///C:/Users/msherrane/Source/Workspaces/TFS/Dev/Web/ELinkMvc/ELinkMvc/ LOG: Initial PrivatePath = C:\Users\User\Source\Workspaces\TFS\Dev\Web\ELinkMvc\ELinkMvc\bin Calling assembly : Azure.Core, Version=1.25.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8.

LOG: This bind starts in default load context. LOG: Using application configuration file: C:\Users\User\Source\Workspaces\TFS\Dev\Web\ELinkMvc\ELinkMvc\web.config LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet.config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config. LOG: Post-policy reference: System.Text.Json, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51 LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/elinkmvc/55fc4c7c/d2691189/System.Text.Json.DLL. LOG: Attempting download of new URL file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET Files/elinkmvc/55fc4c7c/d2691189/System.Text.Json/System.Text.Json.DLL. LOG: Attempting download of new URL file:///C:/Users/User/Source/Workspaces/TFS/Dev/Web/ELinkMvc/ELinkMvc/bin/System.Text.Json.DLL. WRN: Comparing the assembly name resulted in the mismatch: Major Version ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.

Stack Trace:

at Azure.Core.Pipeline.ClientDiagnostics.CreateRequestFailedExceptionAsync(Response response, ResponseError error, IDictionary2 additionalInfo, Exception innerException) at Azure.Storage.Blobs.BlobRestClient.<GetPropertiesAsync>d__11.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Azure.Storage.Blobs.Specialized.BlobBaseClient.<GetPropertiesInternal>d__119.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Azure.Storage.Blobs.Specialized.BlobBaseClient.<ExistsInternal>d__113.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Azure.Storage.Blobs.Specialized.BlobBaseClient.<ExistsAsync>d__112.MoveNext() at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Custard.BusinessObjects.Entities.BusinessObjectBase1.<>c__DisplayClass14_0.<<DownloadBlob>b__0>d.MoveNext() in C:\Users\User\Source\Workspaces\TFS\Dev\Assemblies\BusinessObjects\Entities\BusinessObjectBase.cs:line 163 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter1.GetResult() at Custard.Classes.AsyncUtil.RunSync[TResult](Func1 task) in C:\Users\User\Source\Workspaces\TFS\Dev\Assemblies\Classes\UnsecuredBusinessBase.cs:line 2614 at Custard.BusinessObjects.Entities.BusinessObjectBase1.DownloadBlob(String azureBlobPath) in C:\Users\User\Source\Workspaces\TFS\Dev\Assemblies\BusinessObjects\Entities\BusinessObjectBase.cs:line 157 at Custard.BusinessObjects.Entities.BusinessObjectBase`1.RetrieveAttachmentFromStorage(String callingMemberName) in C:\Users\User\Source\Workspaces\TFS\Dev\Assemblies\BusinessObjects\Entities\BusinessObjectBase.cs:line 253 at Custard.BusinessObjects.Entities.ClaimPhoto.get_Attachment_DatabaseOrBlobValue() in C:\Users\User\Source\Workspaces\TFS\Dev\Assemblies\BusinessObjects\Entities\ClaimPhoto.cs:line 530 at ELinkMvc.Controllers.PhotoController.d62.MoveNext() in C:\Users\USer\Source\Workspaces\TFS\Dev\Web\ELinkMvc\ELinkMvc\Controllers\PhotoController.cs:line 1386 at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Web.Mvc.Async.TaskAsyncActionDescriptor.EndExecute(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass8_0.b1(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass11_0.b0() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass11_2.b2() at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.<>cDisplayClass11_2.b2() at System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass3_6.b4() at System.Web.Mvc.Async.AsyncControllerActionInvoker.<>cDisplayClass3_1.b__1(IAsyncResult asyncResult)

azure-sdk commented 2 years ago

Label prediction was below confidence level 0.6 for Model:ServiceLabels: 'Azure.Identity:0.4440233,Storage:0.19851191,Service Bus:0.12424685'

jsquire commented 2 years ago

Hi @mike-sherrane. Thank you for reaching out and we regret that you're experiencing difficulties. To clarify:

From the error that you're seeing, it would appear that there are dependency conflicts either with other dependencies or the application itself. I'd suggest adding a direct reference to System.Text.Json version 4.7.2 or greater and testing with that.

If you'd be so kind as to share your .csproj file - specifically all of its references, it would help us to offer further thoughts.

mike-sherrane commented 2 years ago

Thank you for your quick response.

I am aware Azure.Code 1.25.0 requiresa System.Text.Json 4.72 or greater, which is why I was greatly surprised by the error. I have version 6.0.0.5 in the project reference.

This is the project file:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns=http://schemas.microsoft.com/developer/msbuild/2003>
  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <ProductVersion>
    </ProductVersion>
    <SchemaVersion>2.0</SchemaVersion>
    <ProjectGuid>{12415206-7C69-42A1-8812-C454CB68559B}</ProjectGuid>
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
    <OutputType>Library</OutputType>
    <AppDesignerFolder>Properties</AppDesignerFolder>
    <RootNamespace>ELinkMvc</RootNamespace>
    <AssemblyName>ELinkMvc</AssemblyName>
    <TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
    <MvcBuildViews>false</MvcBuildViews>
    <UseIISExpress>false</UseIISExpress>
    <IISExpressSSLPort />
    <IISExpressAnonymousAuthentication />
    <IISExpressWindowsAuthentication />
    <IISExpressUseClassicPipelineMode />
    <UseGlobalApplicationHostFile />
    <NuGetPackageImportStamp>
    </NuGetPackageImportStamp>
    <SccProjectName>SAK</SccProjectName>
    <SccLocalPath>SAK</SccLocalPath>
    <SccAuxPath>SAK</SccAuxPath>
    <SccProvider>SAK</SccProvider>
    <Use64BitIISExpress />
    <TargetFrameworkProfile />
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE;DEBUG</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <LangVersion>7.2</LangVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
    <Optimize>true</Optimize>
    <OutputPath>bin\</OutputPath>
    <DefineConstants>TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
  </PropertyGroup>
  <PropertyGroup>
    <MSBuildWarningsAsMessages>
      $(MSBuildWarningsAsMessages);MSB3274;MSB3275;MSB3268
    </MSBuildWarningsAsMessages>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Antlr" Version="3.5.0.2" />
    <PackageReference Include="Azure.Core" version="1.25.0" />
    <PackageReference Include="Azure.Storage.Blobs" version="12.13.0" />
    <PackageReference Include="Azure.Storage.Common" version="12.12.0" />
    <PackageReference Include="bootstrap" version="5.1.3" />
    <PackageReference Include="Csla" version="5.4.2" />
    <PackageReference Include="DevExpress.Reporting.Core">
      <Version>21.2.8</Version>
    </PackageReference>
    <PackageReference Include="EntityFramework" version="6.2.0" />
    <PackageReference Include="jQuery" version="3.5.1" />
    <PackageReference Include="jQuery.Validation" version="1.19.2" />
    <PackageReference Include="Microsoft.AspNet.Identity.Core" version="2.2.1" />
    <PackageReference Include="Microsoft.AspNet.Identity.EntityFramework" version="2.2.1" />
    <PackageReference Include="Microsoft.AspNet.Mvc" version="5.2.9" />
    <PackageReference Include="Microsoft.AspNet.Razor" version="3.2.9" />
    <PackageReference Include="Microsoft.AspNet.Web.Optimization" version="1.1.3" />
    <PackageReference Include="Microsoft.AspNet.WebPages" version="3.2.9" />
    <PackageReference Include="Microsoft.Bcl.AsyncInterfaces" version="6.0.0" />
    <PackageReference Include="Microsoft.Bcl.Build" version="1.0.21" />
    <PackageReference Include="Microsoft.Extensions.Configuration" version="6.0.1" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.Configuration.Binder" version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" version="6.0.0" />
    <PackageReference Include="Microsoft.Extensions.Primitives" version="6.0.0" />
    <PackageReference Include="Microsoft.Identity.Client" version="4.45.0" />
    <PackageReference Include="Microsoft.IdentityModel.Abstractions">
      <Version>6.22.0</Version>
    </PackageReference>
    <PackageReference Include="Microsoft.IdentityModel.JsonWebTokens" version="6.22.0" />
    <PackageReference Include="Microsoft.IdentityModel.Logging" version="6.22.0" />
    <PackageReference Include="Microsoft.IdentityModel.Protocols" version="6.22.0" />
    <PackageReference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.22.0" />
    <PackageReference Include="Microsoft.IdentityModel.Tokens" version="6.22.0" />
    <PackageReference Include="Microsoft.jQuery.Unobtrusive.Validation" version="4.0.0" />
    <PackageReference Include="Microsoft.Owin" version="4.2.0" />
    <PackageReference Include="Microsoft.Owin.Host.SystemWeb" version="4.2.0" />
    <PackageReference Include="Microsoft.Owin.Security" version="4.2.0" />
    <PackageReference Include="Microsoft.Owin.Security.Cookies" version="4.2.0" />
    <PackageReference Include="Microsoft.Owin.Security.OAuth" version="4.2.0" />
    <PackageReference Include="Microsoft.Owin.Security.OpenIdConnect" version="4.2.0" />
    <PackageReference Include="Microsoft.Web.Infrastructure" version="1.0.0.0" />
    <PackageReference Include="Modernizr" version="2.8.3" />
    <PackageReference Include="Newtonsoft.Json" version="13.0.1" />
    <PackageReference Include="Owin" version="1.0" />
    <PackageReference Include="Respond" version="1.4.2" />
    <PackageReference Include="System.Buffers" version="4.5.1" />
    <PackageReference Include="System.ComponentModel.Annotations" version="5.0.0" />
    <PackageReference Include="System.Configuration.ConfigurationManager">
      <Version>6.0.0</Version>
    </PackageReference>
    <PackageReference Include="System.Diagnostics.DiagnosticSource" version="6.0.0" />
    <PackageReference Include="System.IdentityModel.Tokens.Jwt" version="6.22.0" />
    <PackageReference Include="System.IO" version="4.3.0" />
    <PackageReference Include="System.Memory" version="4.5.5" />
    <PackageReference Include="System.Net.Primitives">
      <Version>4.3.1</Version>
    </PackageReference>
    <PackageReference Include="System.Numerics.Vectors" version="4.5.0" />
    <PackageReference Include="System.Runtime" version="4.3.0" />
    <PackageReference Include="System.Runtime.CompilerServices.Unsafe" version="6.0.0" />
    <PackageReference Include="System.Security.Cryptography.Algorithms" version="4.3.1" />
    <PackageReference Include="System.Security.Cryptography.Encoding" version="4.3.0" />
    <PackageReference Include="System.Security.Cryptography.Primitives" version="4.3.0" />
    <PackageReference Include="System.Security.Cryptography.X509Certificates" version="4.3.2" />
    <PackageReference Include="System.Text.Encodings.Web" version="6.0.0" />
    <PackageReference Include="System.Text.Json" version="6.0.5" />
    <PackageReference Include="System.Threading.Tasks.Extensions" version="4.5.4" />
    <PackageReference Include="System.ValueTuple" version="4.5.0" />
    <PackageReference Include="WebGrease" version="1.6.0" />
  </ItemGroup>
  <ItemGroup>
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System" />
    <Reference Include="System.ComponentModel.Composition" />
    <Reference Include="System.Data" />
    <Reference Include="System.Drawing" />
    <Reference Include="System.IdentityModel" />
    <Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
      <Private>True</Private>
      <Private>True</Private>
    </Reference>
    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
    </Reference>
    <Reference Include="System.Numerics" />
    <Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
      <Private>True</Private>
      <Private>True</Private>
    </Reference>
    <Reference Include="System.Runtime.Caching" />
    <Reference Include="System.Runtime.Serialization" />
    <Reference Include="System.Security" />
    <Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
      <Private>True</Private>
      <Private>True</Private>
    </Reference>
    <Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
      <HintPath>..\..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
      <Private>True</Private>
      <Private>True</Private>
    </Reference>
    <Reference Include="System.Web.DynamicData" />
    <Reference Include="System.Web.Entity" />
    <Reference Include="System.Web.ApplicationServices" />
    <Reference Include="System.ComponentModel.DataAnnotations" />
    <Reference Include="System.Web" />
    <Reference Include="System.Web.Abstractions" />
    <Reference Include="System.Web.Routing" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="System.Configuration" />
    <Reference Include="System.Web.Services" />
    <Reference Include="System.EnterpriseServices" />
    <Reference Include="System.Net.Http">
    </Reference>
    <Reference Include="System.Net.Http.WebRequest">
    </Reference>
  </ItemGroup>
  <ItemGroup>
    <Compile Include="App_Start\BundleConfig.cs" />
    <Compile Include="App_Start\FilterConfig.cs" />
    <Compile Include="App_Start\RouteConfig.cs" />
    <Compile Include="App_Start\Startup.cs" />
    <Compile Include="Controllers\AccountController.cs" />
    <Compile Include="Controllers\AdministrationController.cs" />
    <Compile Include="Controllers\CIANetAdminController.cs" />
    <Compile Include="Controllers\ClaimContactController.cs" />
    <Compile Include="Controllers\ClaimController.cs" />
   <Compile Include="Controllers\CustomerController.cs" />
    <Compile Include="Controllers\DiaryController.cs" />
    <Compile Include="Controllers\DocumentCenterController.cs" />
    <Compile Include="Controllers\ELinkBaseController.cs" />
    <Compile Include="Controllers\EmployeeController.cs" />
    <Compile Include="Controllers\HomeController.cs" />
    <Compile Include="Controllers\OnCallController.cs" />
    <Compile Include="Controllers\PhotoController.cs" />
    <Compile Include="Controllers\ReportController.cs" />
    <Compile Include="Controllers\TimesheetController.cs" />
    <Compile Include="Controllers\WorkflowController.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\ClientCacheAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\DbTableFilterAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\HtmlTableColumnAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\HtmlTableDynamicFilterAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\HtmlTableFilterAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Attributes\HtmlTableSearchAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\Controllers\SiteControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\Controllers\SiteSecureControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\Controllers\SiteSecureListControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\EnumExtensionFuncs.cs" />
    <Compile Include="Custard.Web.Mvc\HtmlFormatting.cs" />
    <Compile Include="Custard.Web.Mvc\IDbFilteredList.cs" />
    <Compile Include="Custard.Web.Mvc\IFooterSummary.cs" />
    <Compile Include="Custard.Web.Mvc\ISortableCollectionBase.cs" />
    <Compile Include="Custard.Web.Mvc\ModelSearchCriteria.cs" />
    <Compile Include="Custard.Web.Mvc\MVC4\SiteControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\MVC4\SiteSecureControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\MVC4\SiteSecureListControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\MVC4\SiteWindowsSecureControllerBase.cs" />
    <Compile Include="Custard.Web.Mvc\MvcHelpers.cs" />
    <Compile Include="Custard.Web.Mvc\PredicateBuilder.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\BoolExtensionMethods.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\DateTimeExtensionMethods.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\DiaryAttachmentException.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\ExceptionExtensionMethods.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\PrincipalExtensionMethods.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\StringExtensionMethods.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\TraceManager.cs" />
    <Compile Include="Custard.Web.Mvc\Utilities\WindowsImageAdapter.cs" />
    <Compile Include="Custard.Web.Mvc\Validation\ConditionallyRequiredAttribute.cs" />
    <Compile Include="Custard.Web.Mvc\WebSearchLinqBase.cs" />
    <Compile Include="Custard.Web.Mvc\WebsiteSearch.cs" />
    <Compile Include="Global.asax.cs">
      <DependentUpon>Global.asax</DependentUpon>
    </Compile>
    <Compile Include="Models\Account\AccountManagementModel.cs" />
    <Compile Include="Models\Account\ChangePasswordModel.cs" />
    <Compile Include="Models\Account\GetUserNameFromEMail.cs" />
    <Compile Include="Models\Account\LogonModel.cs" />
    <Compile Include="Models\Account\ResetPassword.cs" />
    <Compile Include="Models\Account\TwoFactorAuthenticationModel.cs" />
    <Compile Include="Models\Account\TwoFactorCookie.cs" />
    <Compile Include="Models\Account\UserHistory.cs" />
    <Compile Include="Models\Account\UserLink.cs" />
    <Compile Include="Models\Account\UserSecuredDevice.cs" />
    <Compile Include="Models\Account\UserSecuredDeviceList.cs" />
    <Compile Include="Models\Administration\BugReport.cs" />
    <Compile Include="Models\Administration\CIANetUser.cs" />
    <Compile Include="Models\Administration\ReleaseNote.cs" />
    <Compile Include="Models\Administration\ReleaseNoteList.cs" />
    <Compile Include="Models\Administration\ReleaseNotes.cs" />
    <Compile Include="Models\Administration\UserTrace.cs" />
    <Compile Include="Models\Administration\UserTraceList.cs" />
    <Compile Include="Models\CIANetAdmin\CIANetAdminCfg.cs" />
    <Compile Include="Models\CIANetAdmin\UsageReport.cs" />
    <Compile Include="Models\CircularLinkedList.cs" />
    <Compile Include="Models\Claim\Claim.cs" />
    <Compile Include="Models\Claim\ClaimAccessCheck.cs" />
    <Compile Include="Models\Claim\ClaimContactResponse.cs" />
    <Compile Include="Models\Claim\ClaimList.cs" />
    <Compile Include="Models\Claim\ClaimSummary.cs" />
    <Compile Include="Models\Claim\ClaimSummaryList.cs" />
    <Compile Include="Models\Claim\ClaimSummaryWebSearchLinq.cs" />
    <Compile Include="Models\Customer\CustomerContact.cs" />
    <Compile Include="Models\Customer\CustomerContactList.cs" />
    <Compile Include="Models\Customer\CustomerSummary.cs" />
    <Compile Include="Models\Customer\CustomerSummaryList.cs" />
    <Compile Include="Models\Customer\CustomerWebSearchLinq.cs" />
    <Compile Include="Models\Diary\ClaimDiaryList.cs" />
    <Compile Include="Models\Diary\ClaimDiarySummary.cs" />
    <Compile Include="Models\Diary\ClaimDiarySummaryWebSearchLinq.cs" />
    <Compile Include="Models\Diary\Diary.cs" />
    <Compile Include="Models\Diary\DiaryBase.cs" />
    <Compile Include="Models\Diary\DiaryCount.cs" />
    <Compile Include="Models\Diary\DiaryDue.cs" />
    <Compile Include="Models\Diary\DiaryDueList.cs" />
    <Compile Include="Models\Diary\DiaryDueWebSearchLinq.cs" />
    <Compile Include="Models\Diary\DiaryList.cs" />
    <Compile Include="Models\Diary\DiaryListType.cs" />
    <Compile Include="Models\Diary\DiaryResponse.cs" />
    <Compile Include="Models\Diary\DiaryWebSearchLinq.cs" />
    <Compile Include="Models\Diary\ICalendar.cs" />
    <Compile Include="Models\Diary\ICalendarBaseTask.cs" />
    <Compile Include="Models\Diary\ICalendarEvent.cs" />
    <Compile Include="Models\Diary\ICalendarPriority.cs" />
    <Compile Include="Models\Diary\ICalendarTodo.cs" />
    <Compile Include="Models\Diary\IDiaryList.cs" />
    <Compile Include="Models\Diary\MailMergeContainer.cs" />
    <Compile Include="Models\Diary\OfficeEMail.cs" />
    <Compile Include="Models\Diary\ReportFolder.cs" />
    <Compile Include="Models\Diary\ReportFolderList.cs" />
    <Compile Include="Models\Diary\ReportTemplate.cs" />
    <Compile Include="Models\Diary\ReportTemplateItem.cs" />
    <Compile Include="Models\Diary\ReportTemplateList.cs" />
    <Compile Include="Models\Dictionary.cs" />
    <Compile Include="Models\DocumentCenter\Announcement.cs" />
    <Compile Include="Models\DocumentCenter\CustomerInstruction.cs" />
    <Compile Include="Models\DocumentCenter\DocumentCenterModelBase.cs" />
    <Compile Include="Models\DocumentCenter\DocumentEdit.cs" />
    <Compile Include="Models\DocumentCenter\DocumentGroupEdit.cs" />
    <Compile Include="Models\DocumentCenter\DocumentSearch.cs" />
    <Compile Include="Models\DocumentCenter\DocumentSummary.cs" />
    <Compile Include="Models\DocumentCenter\GroupExternalLinkEdit.cs" />
    <Compile Include="Models\DocumentCenter\TopLevelDocumentGroup.cs" />
    <Compile Include="Models\ELinkCollectionBase.cs" />
    <Compile Include="Models\ModelUtilities.cs" />
    <Compile Include="Models\OnCall\EmployeeLookupItem.cs" />
    <Compile Include="Models\OnCall\HotlineOfficeList.cs" />
    <Compile Include="Models\OnCall\OnCallEdit.cs" />
    <Compile Include="Models\OnCall\OnCallUpdate.cs" />
    <Compile Include="Models\Photo\ClaimPhotoExtract.cs" />
    <Compile Include="Models\Photo\Photo.cs" />
    <Compile Include="Models\Photo\PhotoEdit.cs" />
    <Compile Include="Models\Photo\PhotoList.cs" />
    <Compile Include="Models\Photo\UploadSelection.cs" />
    <Compile Include="Models\Portal\ClaimCount.cs" />
    <Compile Include="Models\Portal\InvoiceSummary.cs" />
    <Compile Include="Models\Portal\InvoiceSummaryList.cs" />
    <Compile Include="Models\Portal\ManagedEmployee.cs" />
    <Compile Include="Models\Portal\ManagedEmployeeList.cs" />
    <Compile Include="Models\Portal\Portal.cs" />
    <Compile Include="Models\Portal\PortalUserStats.cs" />
    <Compile Include="Models\Rates\RateSelect.cs" />
    <Compile Include="Models\Rates\Schedule.cs" />
    <Compile Include="Models\Report\AdjusterInvoiceSummaryParameters.cs" />
    <Compile Include="Models\Report\ClaimPhotoReportParameters.cs" />
    <Compile Include="Models\Report\InvoiceReportParameters.cs" />
    <Compile Include="Models\Report\ReportList.cs" />
    <Compile Include="Models\Report\ReportParameterBase.cs" />
    <Compile Include="Models\Report\ReportsDueParameters.cs" />
    <Compile Include="Models\Report\UninvoicedTimesheetReportParameters.cs" />
    <Compile Include="Models\Report\WIPReportParameters.cs" />
    <Compile Include="Models\RoutingNames.cs" />
    <Compile Include="Models\SessionDataException.cs" />
    <Compile Include="Models\Timesheet\AcceptedWarning.cs" />
    <Compile Include="Models\Timesheet\ClaimTimesheet.cs" />
    <Compile Include="Models\Timesheet\ClaimTimesheetList.cs" />
    <Compile Include="Models\Timesheet\ClaimTimesheetWebSearchLinq.cs" />
    <Compile Include="Models\Timesheet\PendingTimesheet.cs" />
    <Compile Include="Models\Timesheet\PendingTransaction.cs" />
    <Compile Include="Models\Timesheet\PersonalReportParams.cs" />
    <Compile Include="Models\Timesheet\PersonalTimesheetReport.cs" />
    <Compile Include="Models\Timesheet\PersonalTimesheetReportItem.cs" />
    <Compile Include="Models\Timesheet\TimesheetAllocationResponse.cs" />
    <Compile Include="Models\Timesheet\TimesheetError.cs" />
    <Compile Include="Models\Timesheet\TimesheetRateResponse.cs" />
    <Compile Include="Models\Timesheet\TimesheetReceiptResponse.cs" />
    <Compile Include="Models\Timesheet\TimesheetResponse.cs" />
    <Compile Include="Models\Timesheet\TimesheetSummary.cs" />
    <Compile Include="Models\Timesheet\TimesheetSummaryBase.cs" />
    <Compile Include="Models\Timesheet\TimesheetSummaryList.cs" />
    <Compile Include="Models\Timesheet\TimesheetSummaryWebSearchLinq.cs" />
    <Compile Include="Models\Validation\ModelExtensionMethods.cs" />
    <Compile Include="Models\Validation\PropertyUpdatedResponse.cs" />
    <Compile Include="Models\Validation\PropertyValidationResponse.cs" />
    <Compile Include="Models\Validation\ValidationResponse.cs" />
    <Compile Include="Models\Workflow\WorkflowInbox.cs" />
    <Compile Include="Models\Workflow\WorkflowInboxItem.cs" />
    <Compile Include="Models\Workflow\WorkflowStatusReponse.cs" />
    <Compile Include="Properties\AssemblyInfo.cs" />
    <Compile Include="Models\JsonErrorResponse.cs" />
    <Compile Include="Utilities\ClaimPrincipalExtension.cs" />
    <Compile Include="Utilities\MSALAppMemoryTokenCache.cs" />
    <Compile Include="Utilities\MsalConfidentialClientApp.cs" />
    <Compile Include="Utilities\MSALPerUserMemoryTokenCache.cs" />
    <Compile Include="Utilities\OAuth2CodeRedeemerMiddleware.cs" />
    <Compile Include="Utilities\SameSiteCookieManager.cs" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="Content\bootstrap-theme.css" />
    <Content Include="Content\bootstrap-theme.min.css" />
    <Content Include="Content\bootstrap.css" />
    <Content Include="Content\bootstrap.min.css" />
    <Content Include="Content\ELink.css" />
    <Content Include="Content\mobileSite.css" />
    <Content Include="Content\Site.css" />
    <Content Include="favicon.ico" />
    <Content Include="fonts\glyphicons-halflings-regular.svg" />
    <Content Include="Global.asax" />
    <Content Include="Maintenance\App_Offline.htm" />
    <Content Include="Scripts\AccountManagement.js" />
    <Content Include="Scripts\AdjusterStatistics.js" />
    <Content Include="Scripts\AzureLogin.js" />
    <Content Include="Scripts\bootstrap.js" />
    <Content Include="Scripts\bootstrap.min.js" />
    <Content Include="Scripts\CIANetAdmin.js" />
    <Content Include="Scripts\Claim.js" />
    <Content Include="Scripts\ClaimContactParties.js" />
    <Content Include="Scripts\ClaimContactPartiesReadOnly.js" />
    <Content Include="Scripts\ClaimList.js" />
    <Content Include="Scripts\ClaimParties.js" />
    <Content Include="Scripts\ClaimSearch.js" />
    <Content Include="Scripts\ClaimsItemMenu.js" />
    <Content Include="Scripts\Customer.js" />
    <Content Include="Scripts\CustomerContact.js" />
    <Content Include="Scripts\CustomerIndex.js" />
    <Content Include="Scripts\DesktopSearch.js" />
    <Content Include="Scripts\Diary.js" />
    <Content Include="Scripts\DiaryCurrentWork.js" />
    <Content Include="Scripts\DiaryDesktop.js" />
    <Content Include="Scripts\DiaryDocumentation.js" />
    <Content Include="Scripts\DiaryEditor.js" />
    <Content Include="Scripts\DiaryEditorDesktop.js" />
    <Content Include="Scripts\DiaryEditorMobile.js" />
    <Content Include="Scripts\DiaryList.js" />
    <Content Include="Scripts\DiaryMobile.js" />
    <Content Include="Scripts\DocumentAdmin.js" />
    <Content Include="Scripts\DocumentCenterList.js" />
    <Content Include="Scripts\DocumentCenterListDesktop.js" />
    <Content Include="Scripts\DocumentCenterListMobile.js" />
    <Content Include="Scripts\ELinkLib.js" />
    <Content Include="Scripts\exif.js" />
    <Content Include="Scripts\HtmlAddPhoto.js" />
    <Content Include="Scripts\jpegmeta.js" />
    <Content Include="fonts\glyphicons-halflings-regular.woff2" />
    <Content Include="fonts\glyphicons-halflings-regular.woff" />
    <Content Include="fonts\glyphicons-halflings-regular.ttf" />
    <Content Include="fonts\glyphicons-halflings-regular.eot" />
    <Content Include="Content\bootstrap.min.css.map" />
    <Content Include="Content\bootstrap.css.map" />
    <Content Include="Content\bootstrap-theme.min.css.map" />
    <Content Include="Content\bootstrap-theme.css.map" />
    <None Include="Web.Release.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
    <None Include="Web.Debug.config">
      <DependentUpon>Web.config</DependentUpon>
    </None>
    <Content Include="Scripts\LinkStatusMessageDisplay.js" />
    <Content Include="Scripts\mLayout.js" />
    <Content Include="Scripts\MobileLayout.js" />
    <Content Include="Scripts\PersonalTimeReport.js" />
    <Content Include="Scripts\PersonalTimesheetReport.js" />
    <Content Include="Scripts\PhotoEdit.js" />
    <Content Include="Scripts\PhotoList.js" />
    <Content Include="Scripts\PhotoWindowsUpload.js" />
    <Content Include="Scripts\PortalPage.js" />
    <Content Include="Scripts\ReportList.js" />
    <Content Include="Scripts\ResetCIANetUser.js" />
    <Content Include="Scripts\Rolodex.js" />
    <Content Include="Scripts\SearchPageFunctions.js" />
    <Content Include="Scripts\TimesheetAddDesktop.js" />
    <Content Include="Scripts\TimesheetAddMobile.js" />
    <Content Include="Scripts\TimesheetAddTimesheet.js" />
    <Content Include="Scripts\TimesheetAddTimesheetDesktop.js" />
    <Content Include="Scripts\TimesheetAddTimesheetMobile.js" />
    <Content Include="Scripts\TimesheetEditTimesheetDesktop.js" />
    <Content Include="Scripts\TimesheetEditTimesheetMobile.js" />
    <Content Include="Scripts\TimesheetEntryMobile.js" />
    <Content Include="Scripts\TimesheetList.js" />
    <Content Include="Scripts\TimesheetTimesheetEntry.js" />
    <Content Include="Scripts\TraceManagement.js" />
    <Content Include="Scripts\EmployeeSkillSurvey.js" />
    <Content Include="Scripts\_header.js" />
    <Content Include="Web.config">
      <SubType>Designer</SubType>
    </Content>
    <None Include="Properties\PublishProfiles\Beta.pubxml" />
    <None Include="Properties\PublishProfiles\DEV.pubxml" />
    <Content Include="Scripts\jquery.unobtrusive-ajax.js" />
    <Content Include="Scripts\jquery.unobtrusive-ajax.min.js" />
    <None Include="Scripts\jquery.validate-vsdoc.js" />
    <Content Include="Scripts\jquery.validate.js" />
    <Content Include="Scripts\jquery.validate.min.js" />
    <Content Include="Scripts\jquery.validate.unobtrusive.js" />
    <Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
    <Content Include="Scripts\knockout-2.2.0.debug.js" />
    <Content Include="Scripts\knockout-2.2.0.js" />
    <Content Include="Scripts\OnCallEdit.js" />
    <Content Include="Scripts\PhotoContactSheet.js" />
    <Content Include="Scripts\PhotoControl.js" />
    <Content Include="Scripts\PhotoGrid.js" />
    <Content Include="Scripts\PhotoUploadController.js" />
    <Content Include="Scripts\respond.js" />
    <Content Include="Scripts\respond.min.js" />
    <Content Include="Scripts\TimesheetEdit.js" />
    <Content Include="Scripts\TimesheetEditor.js" />
    <Content Include="Scripts\TimesheetEntry.js" />
    <Content Include="Scripts\_references.js" />
    <Content Include="Views\Tutorial\Html5PhotoUpload.html" />
    <Content Include="Views\Tutorial\HtmlPage1.html" />
    <Content Include="Views\Tutorial\PhotoControlUpArrow.jpg" />
    <Content Include="Views\Tutorial\PhotoEditor.jpg" />
    <Content Include="Views\Web.config">
      <SubType>Designer</SubType>
    </Content>
    <Content Include="Views\Account\Logon.cshtml" />
    <Content Include="Views\Account\Management.cshtml" />
    <Content Include="Views\Account\mChangePassword.cshtml" />
    <Content Include="Views\Account\mLinks.cshtml" />
    <Content Include="Views\Account\mLogon.cshtml" />
    <Content Include="Views\Account\mSettings.cshtml" />
    <Content Include="Views\Account\ResetPassword.cshtml" />
    <Content Include="Views\Account\SettingsMenu.cshtml" />
    <Content Include="Views\Administration\ResetCIANetUser.cshtml" />
    <Content Include="Views\Administration\TraceManagement.cshtml" />
    <Content Include="Views\CIANetAdmin\Index.cshtml" />
    <Content Include="Views\CIANetAdmin\UsageReport.cshtml" />
    <Content Include="Views\Claim\Claim.cshtml" />
    <Content Include="Views\Claim\ClaimNotFound.cshtml" />
    <Content Include="Views\Claim\CurrentWork.cshtml" />
    <Content Include="Views\Claim\DesktopSearch.cshtml" />
    <Content Include="Views\Claim\Index.cshtml" />
    <Content Include="Views\Claim\mCurrentWork.cshtml" />
    <Content Include="Views\Claim\Parties.cshtml" />
    <Content Include="Views\Claim\Search.cshtml" />
    <Content Include="Views\ClaimContact\Parties.cshtml" />
    <Content Include="Views\ClaimContact\PartiesReadOnly.cshtml" />
    <Content Include="Views\Customer\Contact.cshtml" />
    <Content Include="Views\Customer\Customer.cshtml" />
    <Content Include="Views\Customer\Index.cshtml" />
    <Content Include="Views\Diary\ClaimIndex.cshtml" />
    <Content Include="Views\Diary\CurrentWork.cshtml" />
    <Content Include="Views\Diary\Diary.cshtml" />
    <Content Include="Views\Diary\DiaryEditor.cshtml" />
    <Content Include="Views\Diary\Documentation.cshtml" />
    <Content Include="Views\Diary\Index.cshtml" />
    <Content Include="Views\Diary\mCurrentWork.cshtml" />
    <Content Include="Views\Diary\ViewDiary.cshtml" />
    <Content Include="Views\Diary\WordController.cshtml" />
    <Content Include="Views\DocumentCenter\Admin.cshtml" />
    <Content Include="Views\DocumentCenter\DocumentGroup.cshtml" />
    <Content Include="Views\DocumentCenter\Flash.cshtml" />
    <Content Include="Views\DocumentCenter\FlashVideo.cshtml" />
    <Content Include="Views\DocumentCenter\Html5Video.cshtml" />
    <Content Include="Views\DocumentCenter\Index.cshtml" />
    <Content Include="Views\DocumentCenter\NewHirePackage.cshtml" />
    <Content Include="Views\DocumentCenter\WindowsMediaVideo.cshtml" />
    <Content Include="Views\DocumentCenter\_AdminAnnouncementEditor.cshtml" />
    <Content Include="Views\DocumentCenter\_AdminDocumentEditor.cshtml" />
    <Content Include="Views\Home\AdjusterStatistics.cshtml" />
    <Content Include="Views\Home\BillingDetail.cshtml" />
    <Content Include="Views\Home\BugReport.cshtml" />
    <Content Include="Views\Home\Confirmation.cshtml" />
    <Content Include="Views\Home\Index.cshtml" />
   <Content Include="Views\Home\mIndex.cshtml" />
    <Content Include="Views\Home\mStats.cshtml" />
    <Content Include="Views\Home\OfficeStats.cshtml" />
    <Content Include="Views\Home\ReleaseNotes.cshtml" />
    <Content Include="Views\OnCall\Index.cshtml" />
    <Content Include="Views\OnCall\OnCallEdit.cshtml" />
    <Content Include="Views\OnCall\Rolodex.cshtml" />
    <Content Include="Views\Photo\Add.cshtml" />
    <Content Include="Views\Photo\AddPhotoGrid.cshtml" />
    <Content Include="Views\Photo\Edit.cshtml" />
    <Content Include="Views\Photo\Html5AddPhotos.cshtml" />
    <Content Include="Views\Photo\HtmlAdd.cshtml" />
    <Content Include="Views\Photo\HtmlAddPhoto.cshtml" />
    <Content Include="Views\Photo\Index.cshtml" />
    <Content Include="Views\Photo\PhotoContactSheet.cshtml" />
    <Content Include="Views\Report\Index.cshtml" />
    <Content Include="Views\Shared\CurrentWorkMenu.cshtml" />
    <Content Include="Views\Shared\CustardPageHeader.cshtml" />
    <Content Include="Views\Shared\CustardSidebar.cshtml" />
    <Content Include="Views\Shared\ELinkHeader.cshtml" />
    <Content Include="Views\Shared\ELinkMobileHeader.cshtml" />
    <Content Include="Views\Shared\ELinkPageHeader.cshtml" />
    <Content Include="Views\Shared\Error.cshtml" />
    <Content Include="Views\Shared\mElinkHeader.cshtml" />
    <Content Include="Views\Shared\mLayout.cshtml" />
    <Content Include="Views\Shared\MobileLayout.cshtml" />
    <Content Include="Views\Shared\mSlideMenu.cshtml" />
    <Content Include="Views\Shared\PageTitle.cshtml" />
    <Content Include="Views\Shared\PopupCustomerContact.cshtml" />
    <Content Include="Views\Shared\ReportLayout.cshtml" />
    <Content Include="Views\Shared\SiteLayout.cshtml" />
    <Content Include="Views\Shared\UserInfo.cshtml" />
    <Content Include="Views\Shared\_ClaimHeader.cshtml" />
    <Content Include="Views\Shared\_ClaimSearch.cshtml" />
    <Content Include="Views\Shared\_mCurrentWorkMenu.cshtml" />
    <Content Include="Views\Timesheet\Add.cshtml" />
    <Content Include="Views\Timesheet\AddTimesheet.cshtml" />
    <Content Include="Views\Timesheet\AddTimesheet_work_.cshtml" />
    <Content Include="Views\Timesheet\ClaimIndex.cshtml" />
    <Content Include="Views\Timesheet\Index.cshtml" />
    <Content Include="Views\Timesheet\PendingTimesheetTransactions.cshtml" />
    <Content Include="Views\Timesheet\PersonalTimeReport.cshtml" />
    <Content Include="Views\Timesheet\PersonalTimesheetReport.cshtml" />
    <Content Include="Views\Timesheet\TimesheetEntry.cshtml" />
    <Content Include="Views\Timesheet\ViewTimesheet.cshtml" />
    <Content Include="Views\Shared\CustardError.cshtml" />
    <Content Include="Views\Photo\WindowsUpload.cshtml" />
    <Content Include="Views\_ViewStart.cshtml" />
    <Content Include="Views\Photo\AddPhotoMenu.cshtml" />
    <Content Include="Views\Shared\_ExternalLinks.cshtml" />
    <Content Include="Views\Shared\_header.cshtml" />
    <Content Include="Views\Shared\_footer.cshtml" />
    <Content Include="Views\Shared\_PartyContactInfo.cshtml" />
    <Content Include="Views\Customer\_ContactListing.cshtml" />
    <Content Include="Views\Claim\ClaimItemsMenu.cshtml" />
    <Content Include="Views\Employee\EmployeeSkillSurvey.cshtml" />
    <Content Include="Views\Workflow\WorkflowInbox.cshtml" />
    <Content Include="Views\Shared\_workflowInbox.cshtml" />
    <Content Include="Views\Shared\Confirmation.cshtml" />
    <Content Include="Views\Workflow\EditSurveyWorkflow.cshtml" />
    <Content Include="Views\Account\TFACode.cshtml" />
    <Content Include="Views\Account\AzureLogin.cshtml" />
    <Content Include="Views\Timesheet\EditTimesheet.cshtml" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="App_Data\" />
  </ItemGroup>
  <ItemGroup>
    <None Include="Project_Readme.html" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\..\..\Assemblies\BusinessObjects.DocumentCenter\Custard.BusinessObjects.DocumentCenter.csproj">
      <Project>{f8a254cb-a0a2-4c91-beb3-bbffcaf35ffe}</Project>
      <Name>Custard.BusinessObjects.DocumentCenter</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\BusinessObjects\Custard.BusinessObjects.csproj">
      <Project>{2005e518-964b-4129-a5fa-621024b20c2b}</Project>
      <Name>Custard.BusinessObjects</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\Classes\Custard.Classes.csproj">
      <Project>{f382372c-0565-46c9-a195-a9120d8c8387}</Project>
      <Name>Custard.Classes</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\Custard.Word.OpenXml\Custard.Word.OpenXml.csproj">
      <Project>{0796da63-8b7c-4b9a-b7e6-7d67c75f2301}</Project>
      <Name>Custard.Word.OpenXml</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\Reporting\Custard.Reporting.csproj">
      <Project>{5783a30d-c6df-476a-88d9-97f13d34c18e}</Project>
      <Name>Custard.Reporting</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\UtilitiesWindows\Custard.UtilitiesWindows.csproj">
      <Project>{fb2548e0-1c73-4a55-96c7-af86371b0526}</Project>
      <Name>Custard.UtilitiesWindows</Name>
    </ProjectReference>
    <ProjectReference Include="..\..\..\Assemblies\Utilities\Custard.Utilities.csproj">
      <Project>{a731147d-ac2d-4838-91ff-979b5a4793dc}</Project>
      <Name>Custard.Utilities</Name>
    </ProjectReference>
  </ItemGroup>
  <ItemGroup>
    <Analyzer Include="..\..\..\packages\Csla.5.4.2\analyzers\c#\Csla.Analyzers.dll" />
  </ItemGroup>
  <PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
  </PropertyGroup>
  <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" />
  <Target Name="MvcBuildViews" AfterTargets="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
    <AspNetCompiler VirtualPath="temp" PhysicalPath="$(WebProjectOutputDir)" />
  </Target>
  <ProjectExtensions>
    <VisualStudio>
      <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
        <WebProjectProperties>
          <UseIIS>True</UseIIS>
          <AutoAssignPort>True</AutoAssignPort>
          <DevelopmentServerPort>52254</DevelopmentServerPort>
          <DevelopmentServerVPath>/</DevelopmentServerVPath>
          <IISUrl>http://localhost/ELinkMvc</IISUrl<http://localhost/ELinkMvc%3c/IISUrl>>
          <NTLMAuthentication>False</NTLMAuthentication>
          <UseCustomServer>False</UseCustomServer>
          <CustomServerUrl>
          </CustomServerUrl>
          <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
        </WebProjectProperties>
      </FlavorProperties>
    </VisualStudio>
  </ProjectExtensions>
  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
  </Target>
  <Import Project="..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\..\..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
  <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
       Other similar extension points exist, see Microsoft.Common.targets.
  <Target Name="BeforeBuild">
  </Target>
  <Target Name="AfterBuild">
  </Target> -->
</Project>
jsquire commented 2 years ago

Thanks for the additional context. I cannot explain the binding behavior yet; we'll need to dig a bit into that in order to understand, given the complexity of assembly binding in the desktop framework.

If I create a new .NET Framework MVC project for net48 and add the full set of your references, I am seeing a compiler warning about the same version conflicts that you're reporting for System.Text.Json. It's worth noting that I'm also seeing the version conflict warning for a handful of other assemblies, many of which are not dependencies of the Azure SDK packages, such as Newtonsoft.Json.

Example:

Consider app.config remapping of assembly "System.Text.Json, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "4.0.1.2" to Version "6.0.0.5" 
... SNIP ... to solve conflict and get rid of warning.

However, if I create a new MVC project on net48 and add only references to the Azure SDK packages and System.Text.Json v6.0.0.5, I do not receive any warning or version conflicts. That leads me to believe there may be some version conflicts that exist somewhere in the set of references that you're using.

Following the guidance in that warning to add a binding redirect cleared up the compiler issue for me and I'm able to interact with Blob Storage while running.

<dependentAssembly>
  <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" />
  <bindingRedirect oldVersion="1.0.0.0-6.0.0.5" newVersion="6.0.0.5" />
</dependentAssembly>

Would you be so kind as to test with a binding redirect and let us know the results?

mike-sherrane commented 2 years ago

Thank you for your insights. All the assemblies have the recommended directive in their app.config files as well as it residing in the web.config of the application prior to me contacting you. This is a very old project (originally MVC 3 app) that was slated to get reworked in the future. It sounds like we may need to perform this task sooner rather than later. Were you able to identify any libraries that generated the warnings? I have removed / reinstalled most of the packages.

FWIW, we do have these libraries functioning in an API. I made sure all the packages were on consistent versions (each app has libraries the other doesn’t). So your report makes me believe I will need to generate a new project.

Thank you

jsquire commented 2 years ago

For my test app, the full set looks like:

1>  Consider app.config remapping of assembly "Microsoft.Bcl.AsyncInterfaces, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "1.0.0.0" [] to Version "6.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.Extensions.DependencyInjection, Culture=neutral, PublicKeyToken=adb9793829ddae60" from Version "3.1.9.0" [] to Version "6.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.Extensions.DependencyInjection.Abstractions, Culture=neutral, PublicKeyToken=adb9793829ddae60" from Version "3.1.9.0" [] to Version "6.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.IdentityModel.Abstractions, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "6.18.0.0" [] to Version "6.22.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.IdentityModel.Protocols, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.3.0.0" [] to Version "6.22.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.IdentityModel.Protocols.OpenIdConnect, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.3.0.0" [] to Version "6.22.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Microsoft.IdentityModel.Tokens, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.3.0.0" [] to Version "6.22.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "Newtonsoft.Json, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" from Version "12.0.0.0" [] to Version "13.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Buffers, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "4.0.2.0" [] to Version "4.0.3.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Diagnostics.DiagnosticSource, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "4.0.4.0" [] to Version "6.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.IdentityModel.Tokens.Jwt, Culture=neutral, PublicKeyToken=31bf3856ad364e35" from Version "5.3.0.0" [] to Version "6.22.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Memory, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "4.0.1.1" ... SNIP ... to Version "4.0.1.2" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Runtime.CompilerServices.Unsafe, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" from Version "4.0.6.0" [] to Version "6.0.0.0" ... SNIP ... to solve conflict and get rid of warning.
1>  Consider app.config remapping of assembly "System.Text.Json, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" from Version "4.0.1.2" [] to Version "6.0.0.5" ... SNIP ... to solve conflict and get rid of warning.

The recommendation for mitigation is:

warning MSB3247: Found conflicts between different versions of the same dependent assembly. In Visual Studio, double-click this 
warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the 
application configuration file: 
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Bcl.AsyncInterfaces" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection" culture="neutral" publicKeyToken="adb9793829ddae60" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.Extensions.DependencyInjection.Abstractions" culture="neutral" publicKeyToken="adb9793829ddae60" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Abstractions" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-6.22.0.0" newVersion="6.22.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Protocols" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-6.22.0.0" newVersion="6.22.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Protocols.OpenIdConnect" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-6.22.0.0" newVersion="6.22.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Microsoft.IdentityModel.Tokens" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-6.22.0.0" newVersion="6.22.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-13.0.0.0" newVersion="13.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Buffers" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Diagnostics.DiagnosticSource" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.IdentityModel.Tokens.Jwt" culture="neutral" publicKeyToken="31bf3856ad364e35" />
    <bindingRedirect oldVersion="0.0.0.0-6.22.0.0" newVersion="6.22.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Memory" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.2" newVersion="4.0.1.2" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
  </dependentAssembly>
</assemblyBinding>
<assemblyBinding
  xmlns="urn:schemas-microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="System.Text.Json" culture="neutral" publicKeyToken="cc7b13ffcd2ddd51" />
    <bindingRedirect oldVersion="0.0.0.0-6.0.0.5" newVersion="6.0.0.5" />
  </dependentAssembly>
</assemblyBinding>
mike-sherrane commented 2 years ago

Thank you for your time and patience. I have all of these declarations. One of the assemblies is misbehaving and trying to load System.Text.Json 4.0.1.2 and was hoping you had a tool that could determine which is the offender. If not, there is no reason to continue. Thank you.

jsquire commented 2 years ago

hoping you had a tool that could determine which is the offender.

Unfortunately, there's nothing available internally to us that isn't also public. In this case, we'd normally recommend fuslogvw, but this discussion started with Fuse logs, so I'm kind of at a loss. If the binding redirects aren't doing their job, the only thing that occurs to me is to start pulling out references and see if we can isolate the culprit.

Per your request, I'll mark this as addressed for now. I've got an inquiry out internally to see if folks with more depth on assembly binding internals have a suggestion. If anything comes of that, I'll follow-up here. Please also feel free to unresolve if you'd like to continue the discussion.

ghost commented 2 years ago

Hi @mike-sherrane. Thank you for opening this issue and giving us the opportunity to assist. We believe that this has been addressed. If you feel that further discussion is needed, please add a comment with the text “/unresolve” to remove the “issue-addressed” label and continue the conversation.

mike-sherrane commented 2 years ago

Thank you for your time and patience Jesse,

I have been doing as you suggested for the past week. As I stated previously, we have an API that is functioning fine with these libraries. I removed all the libraries the MVC app uses that the API does not (excluding OWIN) with no luck. I can only read BLOBS by reverting my MVC app to Azure.Core 1.14.0.0, Azure.Storage.Common 12.7.3.0, and Azure.Storage.Blobs 12.8.3.0, but that is no solution.

Mike

From: Jesse Squire @.> Sent: Wednesday, August 10, 2022 10:49 AM To: Azure/azure-sdk-for-net @.> Cc: Sherrane, Michael @.>; Mention @.> Subject: [External] Re: [Azure/azure-sdk-for-net] Azure.Core, Version=1.25 is trying to load System.Text.Json, Version=4.0.1.2 (Issue #30414)

[External – This email is coming from outside of Custard Insurance Adjusters, Inc. DO NOT CLICK LINKS or OPEN ATTACHMENTS unless you recognize and trust the sender]

hoping you had a tool that could determine which is the offender.

Unfortunately, there's nothing available internally to us that isn't also public. In this case, we'd normally recommend fuslogvw, but this discussion started with Fuse logs, so I'm kind of at a loss. If the binding redirects aren't doing their job, the only thing that occurs to me is to start pulling out references and see if we can isolate the culprit.

Per your request, I'll mark this as addressed for now. I've got an inquiry out internally to see if folks with more depth on assembly binding internals have a suggestion. If anything comes of that, I'll follow-up here. Please also feel free to unresolve if you'd like to continue the discussion.

— Reply to this email directly, view it on GitHubhttps://github.com/Azure/azure-sdk-for-net/issues/30414#issuecomment-1210783217, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A2OC2I5Q4EPEYCXB56FAEPDVYO6MJANCNFSM56ACTYRA. You are receiving this because you were mentioned.Message ID: @.**@.>>

ghost commented 2 years ago

Hi @mike-sherrane, since you haven’t asked that we “/unresolve” the issue, we’ll close this out. If you believe further discussion is needed, please add a comment “/unresolve” to reopen the issue.