当我尝试编译一个使用已部署到我们客户端的文件的实用程序时,我收到以下错误.
程序集'*A*版本2.0.1.2'使用'*B*版本1.1.39.0',其版本高于引用程序集'*B*版本1.1.32.0'.
我们的客户端可以使用这些DLL没问题,因为我们有一个绑定重定向配置文件,它在运行时生效:
<dependentAssembly>
<assemblyIdentity name="*B*" publicKeyToken="..." culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-65535.65535.65535.65535" newVersion="1.1.32.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
为了给出一些背景知识,DLL存在于单独的解决方案中,因此一些引用是文件引用而不是项目引用,这只是我必须要忍受的东西!
是否有任何等效的绑定重定向适用于编译时?
我已经尝试使用调试DLL(版本1.0.0.0)进行编译,源代码回滚到上面的相关版本,但是我在运行时遇到以下错误:
定位的程序集的清单定义与程序集引用不匹配
也许构建服务器的配置与我的机器不同,但无论如何这似乎都不起作用......
我正在运行.NET Framework 4.6.1构建一个测试类库,我在其中构建MSTesttests(Microsoft.VisualStudio.TestTools.UnitTesting).我可以通过进入包含测试项目并运行的文件夹来完全运行测试dotnet test.
但是,VS不会在文本资源管理器中发现测试.我已经根据这个问题的一些答案推荐将每个相关的NuGet包更新到最新版:
我也曾尝试都Test -> Test Settings -> Default Processor Architecture -> x86和x64.
我总是得到以下错误:
[1/10/2018 5:01:03 PM警告]测试运行将使用为框架Framework45和平台X86构建的DLL.以下DLL不会成为运行的一部分:
是什么导致这个?如果它有所帮助,我所有的同事都有同样的问题,而且只有这个解决方案.
这是一个Microsoft.AspNetCore 1.1.2项目.
编辑:csproj:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net461</TargetFramework>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<PlatformTarget>x64</PlatformTarget>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="CsvHelper" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="2.0.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.5.0" />
<PackageReference Include="Microsoft.VisualStudio.TestPlatform" Version="14.0.0.1" />
<PackageReference Include="Moq" Version="4.7.99" />
<PackageReference Include="MSTest.TestAdapter" Version="1.2.0" />
<PackageReference Include="MSTest.TestFramework" Version="1.2.0" /> …Run Code Online (Sandbox Code Playgroud) 这是我第一次尝试启动的旧项目。我收到此错误:
Could not load file or assembly 'Microsoft.Web.Infrastructure,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of
its dependencies. The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
VS2017 上的 MVC4 (dotnet 4.5) 应用程序。
我遇到了这个 S/O 帖子,但我无法完全尝试接受的答案,因为当我尝试保存更改时,它会Copy Local继续更改回False原状。此外,另一个 S/O 帖子似乎表明我不应该篡改Copy Local属性,以便阻止我设置Copy Local为的行为True似乎是故意的(或者可能表明“在全局程序集缓存中找到了程序集”。
为什么我不能设置Copy Local字段?关于如何尝试在 VS2017 中更新Copy Localto 的任何想法True?