相关疑难解决方法(0)

790
推荐指数
9
解决办法
42万
查看次数

警告:发现同一依赖程序集的不同版本之间存在冲突

我目前正在开发一个.NET应用程序,它包含20个项目.其中一些项目是使用.NET 3.5编译的,其他一些项目仍然是.NET 2.0项目(到目前为止没问题).

问题是,如果我包含一个外部组件,我总会收到以下警告:

"Found conflicts between different versions of the same dependent assembly".
Run Code Online (Sandbox Code Playgroud)

这个警告究竟是什么意思,是否有可能排除这个警告(比如在源代码文件中使用#pragma disable)?

.net warnings

309
推荐指数
7
解决办法
17万
查看次数

如何在GAC中注册.NET DLL文件?

我已经创建了一个.NET .DLL文件,我想在GAC中注册.

我在Windows Server 2003命令提示符中使用了此命令:

C:\"Path of dll"\>gacutil /i dllname.dll
'gacutil' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

它说路径不正确.

我是否需要在.NET cmd提示符中使用它?如果是这样,我无法找到.NET cmd提示符.

c# gac dllregistration

78
推荐指数
6
解决办法
27万
查看次数

无法加载文件或程序集'Newtonsoft.Json,Version = 9.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一

我有一个以前在Windows 8.1上使用VS 2013构建的WinJS项目.

最近我通过创建一个空白的Javascript Universal windows 10项目将该项目升级到Universal Windows 10,然后从旧项目添加了我的所有文件.

我有Windows运行时组件以及SQLite的类库.

我添加了通用Windows运行时组件和通用类库,并将我的所有文件从旧项目复制到各自的位置.

不知何故,我设法删除所有构建错误.

我安装了所有必需的SQLite-net,SQLite for Universal Windows Platform,Newtonsoft等.

但是当我运行应用程序并在Windows运行时组件中调用Native方法时,它会产生一些奇怪的错误:

An exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.ni.dll but was not handled in user code.

Additional information: Could not load file or assembly 'Newtonsoft.Json, Version=9.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.

在此输入图像描述

Newtonsoft版本是:9.0.1

我的Windows运行时组件的project.json文件如下:

  {
  "dependencies": {
    "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
    "Newtonsoft.Json": "9.0.1"
  },
  "frameworks": {
    "uap10.0": {}
  },
  "runtimes": {
    "win10-arm": {},
    "win10-arm-aot": {}, …
Run Code Online (Sandbox Code Playgroud)

c# visual-studio win-universal-app windows-10 windows-10-universal

27
推荐指数
7
解决办法
10万
查看次数

Newtonsoft.json汇编包版本不匹配

我正在尝试使用SocketIO4Net在.net中创建socket.io客户端.看来SocketIO4Net依赖于Newtonsoft.Json> = 4.0.8.我也使用PushSharp库,其Newtonsoft.Json依赖关系> = 4.5.10.当我第一次安装PushSharp时,我得到了NewtonSoft.Json 4.5.11,我认为这个版本也应该支持SocketIO4Net,因为它的版本更高,但每次尝试连接socket.io服务器时都会收到此错误.

无法加载文件或程序集'Newtonsoft.Json,Version = 4.0.8.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

我一直在为这些依赖性问题敲打我的脑袋,如果有人能指出我正确的方向,我将非常感激.

c# dependencies json.net nuget socketio4net

26
推荐指数
3
解决办法
4万
查看次数

Web项目需要缺少具有Razor语法3.0.0.0的Web组件ASP.NET Web页面

我将我的项目迁移到mvc 5.0并使用Microsoft Instruction将 razor engin 3迁移

但是打开我的解决方案时得到这个: 在此输入图像描述

Web项目"ProjectName"需要缺少与Visual Studio一起运行的Web组件.您是否要立即使用Web平台安装程序下载并安装它们?(注意:某些组件可能需要重新启动才能生效.)

使用Razor语法3.0.0.0的ASP.NET网页

我也读过这个这个

但这些答案对我没有帮助,我感谢你的帮助

更新: 我的项目构建很好,并且没有任何例外使用razor 3和mvc 5,但只是Intellisense没有感知我的打字和着色我的代码

并且当在Application web Config文件中将此行更改为Value ="2.0.0.0"时,错误消失并且intelisens工作正常

<appSettings>
    <add key="webpages:Version" **value="3.0.0.0"** />
...
</appSettings>
Run Code Online (Sandbox Code Playgroud)

更新 一段时间后,现在你可以使用razor 3 on vs 2012. 在这里你可以升级

asp.net-mvc migrate razor

20
推荐指数
2
解决办法
3万
查看次数

在.net中绑定重定向问题

我有一个名为"MyAssembly"的类库,它在内部引用a.dll,版本3.1.1.0的b.dll; 我已经构建了一个超出MyAssembly.dll的项目.在另一个系统(框)上,我创建了一个Web应用程序项目并引用了MyAssembly.dll.新系统有新版本的a.dll和b.dll 4.0.0; 我在web.config中使用绑定重定向,如下所示.但仍然无法编译Web应用程序.它说缺少程序集引用a.dll,版本3.1.1.0.

任何人都可以帮助解决这个问题吗?

谢谢,Suresh

.net binding assemblies

13
推荐指数
2
解决办法
2万
查看次数

又一个System.Runtime.InteropServices错误

我们与MongoDB一起使用的每个项目都会在没有加载的System.Runtime.InteropServices库中出现问题.

这次错误很有趣:

互操作加载异常

外部异常找不到lib的4.3.0.0版本.但是内部异常找不到版本4.0.0.0

有没有人对此有所了解?


有关此问题的更多信息:

在此输入图像描述

所以,NuGet已经安装了4.3.0.0

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="System.Runtime" version="4.3.0" targetFramework="net462" />
  <package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
</packages>
Run Code Online (Sandbox Code Playgroud)

packages.config确认我已经安装了4.3.0.0,

然而,app.config似乎总是与现实不同步:

  <dependentAssembly>
    <assemblyIdentity name="System.Runtime.InteropServices.RuntimeInformation" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

添加了关于版本4.0.1.0的一行

在同一行.. csproj是胡说八道:

<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <HintPath>x:\Packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>
Run Code Online (Sandbox Code Playgroud)

因为它声称引用4.0.1.0的路径为4.3.0.0

有一些东西被破坏了,它总是发生在那个完全相同的lib上; 不仅仅是这个项目:在我包含MongoDB的任何地方,这个lib都是一个依赖项,每次都有一些随机问题.

当我尝试手动加载时:

        var Name = new AssemblyName("System.Runtime.InteropServices.RuntimeInformation, Version=4.3.0.0");
        var Asm = Assembly.Load(Name);
Run Code Online (Sandbox Code Playgroud)

它也失败了.

我发现System.Runtime.InteropServices.RuntimeInformation.dll不会被复制到build文件夹,即使它包含在项目中.


我找到了一个讨厌的解决方法:如果我在主exe中包含MongoDB,即使我不使用它,它依赖于Interop lib,这迫使lib被复制到build文件夹,然后后续调用工作.

.net c# interop windows-runtime

10
推荐指数
1
解决办法
5408
查看次数