未能加载文件或程序集“System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。

一些老的项目在使用SAEA.Socket相关库后,程序本地测试正常,结果上传到服务器上后提示:未能加载文件或程序集“System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040),其实这个和是不是引用或缺少了System.ValueTuple无任何关系,主要原因就是项目比较老,下面仔细看看项目修改前的xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3   <PropertyGroup>
 4     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 5     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 6     <ProjectGuid>{78CE982E-88D7-4959-AB4E-69DDDC183B1B}</ProjectGuid>
 7     <OutputType>Exe</OutputType>
 8     <AppDesignerFolder>Properties</AppDesignerFolder>
 9     <RootNamespace>test</RootNamespace>
10     <AssemblyName>test</AssemblyName>
11     <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
12     <FileAlignment>512</FileAlignment>
13     <TargetFrameworkProfile />
14     <PublishUrl>publish\</PublishUrl>
15     <Install>true</Install>
16     <InstallFrom>Disk</InstallFrom>
17     <UpdateEnabled>false</UpdateEnabled>
18     <UpdateMode>Foreground</UpdateMode>
19     <UpdateInterval>7</UpdateInterval>
20     <UpdateIntervalUnits>Days</UpdateIntervalUnits>
21     <UpdatePeriodically>false</UpdatePeriodically>
22     <UpdateRequired>false</UpdateRequired>
23     <MapFileExtensions>true</MapFileExtensions>
24     <ApplicationRevision>0</ApplicationRevision>
25     <ApplicationVersion>1.0.0.%2a</ApplicationVersion>
26     <IsWebBootstrapper>false</IsWebBootstrapper>
27     <UseApplicationTrust>false</UseApplicationTrust>
28     <BootstrapperEnabled>true</BootstrapperEnabled>
29   </PropertyGroup>
30   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
31     <PlatformTarget>x64</PlatformTarget>
32     <DebugSymbols>true</DebugSymbols>
33     <DebugType>full</DebugType>
34     <Optimize>false</Optimize>
35     <OutputPath>bin\Debug\</OutputPath>
36     <DefineConstants>DEBUG;TRACE</DefineConstants>
37     <ErrorReport>prompt</ErrorReport>
38     <WarningLevel>4</WarningLevel>
39     <Prefer32Bit>false</Prefer32Bit>
40     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
41   </PropertyGroup>
42   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
43     <PlatformTarget>x64</PlatformTarget>
44     <DebugType>pdbonly</DebugType>
45     <Optimize>true</Optimize>
46     <OutputPath>bin\Release\</OutputPath>
47     <DefineConstants>TRACE</DefineConstants>
48     <ErrorReport>prompt</ErrorReport>
49     <WarningLevel>4</WarningLevel>
50     <Prefer32Bit>false</Prefer32Bit>
51     <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
52   </PropertyGroup>

这个项目是vs2015创建的,虽然现在用vs2017或者vs2019打开可以本地运行,但是只要放服务器上就会报未能加载文件或程序集“System.ValueTuple, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。所以直接将项目改成vs2017建的格式再看看,xml如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
 3   <PropertyGroup>
 4     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
 5     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
 6     <ProjectGuid>{78CE982E-88D7-4959-AB4E-69DDDC183B1B}</ProjectGuid>
 7     <OutputType>Exe</OutputType>
 8     <RootNamespace>test</RootNamespace>
 9     <AssemblyName>test</AssemblyName>
10     <TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
11     <FileAlignment>512</FileAlignment>
12     <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
13     <Deterministic>true</Deterministic>
14   </PropertyGroup>
15   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
16     <PlatformTarget>AnyCPU</PlatformTarget>
17     <DebugSymbols>true</DebugSymbols>
18     <DebugType>full</DebugType>
19     <Optimize>false</Optimize>
20     <OutputPath>bin\Debug\</OutputPath>
21     <DefineConstants>DEBUG;TRACE</DefineConstants>
22     <ErrorReport>prompt</ErrorReport>
23     <WarningLevel>4</WarningLevel>
24   </PropertyGroup>
25   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
26     <PlatformTarget>x64</PlatformTarget>
27     <DebugType>pdbonly</DebugType>
28     <Optimize>true</Optimize>
29     <OutputPath>bin\Release\</OutputPath>
30     <DefineConstants>TRACE</DefineConstants>
31     <ErrorReport>prompt</ErrorReport>
32     <WarningLevel>4</WarningLevel>
33     <Prefer32Bit>false</Prefer32Bit>
34   </PropertyGroup>

对比差别:

 

 将左侧的改为右侧的配置,上述异常消失!

posted @ 2021-03-03 17:11  yswenli  阅读(3762)  评论(0编辑  收藏  举报