Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 项目当前包含对多个版本的引用_C#_Visual Studio_Visual Studio 2012_Dependency Management_Projects And Solutions - Fatal编程技术网

C# 项目当前包含对多个版本的引用

C# 项目当前包含对多个版本的引用,c#,visual-studio,visual-studio-2012,dependency-management,projects-and-solutions,C#,Visual Studio,Visual Studio 2012,Dependency Management,Projects And Solutions,我们最近升级到VS2012和.NET 4.5。自切换到2012年以来,我在调试时不断出现以下错误: 编译器错误消息:BC32206:项目当前包含 对NPGUtilities多个版本的引用,直接 参考版本2012.4.4751.24389和间接参考 (通过“AdminWeb.targetweights.sgModels”)到版本 2012.4.4751.24391. 将直接引用更改为使用NPGUtilities的2012.4.4751.24391(或更高版本) BC32206:项目当前包含多个引用

我们最近升级到VS2012和.NET 4.5。自切换到2012年以来,我在调试时不断出现以下错误:

编译器错误消息:BC32206:项目当前包含 对NPGUtilities多个版本的引用,直接 参考版本2012.4.4751.24389和间接参考 (通过“AdminWeb.targetweights.sgModels”)到版本 2012.4.4751.24391. 将直接引用更改为使用NPGUtilities的2012.4.4751.24391(或更高版本)

BC32206:项目当前包含多个引用 EnterpriseData的版本,直接参考版本 2012.4.4751.25227和版本的间接参考(通过“赞助商Web.selectplan.AdministratorXDataset1”) 2012.4.4751.25243. 将直接引用更改为使用EnterpriseData的版本2012.4.4751.25243(或更高版本)


这两个都是项目参考。我试着删除并读取它们,但仍然没有成功。有人能就如何解决此问题提供建议吗?

如错误消息所示,您的库存在版本冲突。检查引用的版本以确保它们匹配,或者更好的是,确保您在主项目和子项目中使用了对同一文件的引用。

我遇到了同样的“明显”问题,我花了一整天的时间试图解决。我已经彻底检查了我的项目依赖关系,所有这些依赖关系都指向同一版本的有问题的dll。我甚至用核弹攻击了我的本地文件夹,并从Subversion中恢复了所有内容-仍然是一样的。我运行Process Explorer并搜索dll,结果发现.NET Reflector引用了旧的dll。在另一个Visual Studio解决方案中调试较旧版本之前的几天,我使用了.NET Reflector,而.NET Relector正在其一个文件夹中引用较旧的dll。这可能会节省一些时间。

我发现问题是因为我无意中设置了错误的启动文件夹。 例如,我有一个依赖于项目B的项目A,项目A应该是启动项目。 然而,我没有意识到PROJECT_B现在是启动文件夹

PROJECT_A使用对PROJECT_B dll的旧引用进行编译,然后PROJECT_B随后创建新版本并将该新版本复制到bin文件夹


更正启动文件夹为我更正了此问题。

我可以通过删除
bin
文件夹中的所有文件,然后重建项目来解决此问题。对我来说,问题是清理项目只是删除
bin\Debug
文件夹中的DLL,而旧DLL则保留在
bin\Release
文件夹中。

尝试删除所有bin/Debug/*文件

我们遇到了一个类似的问题,清理无法解决。事实证明,一个bin文件夹意外地包含在项目中,因此引用的dll被签入到版本控制中。撤消include并从repo中删除dll就成功了。

首先解决方法:我禁用了程序集版本自动增量

请注意,此问题仅在Vs2013中出现,并且解决方案的副本完全运行在vs2010中。 Vs2013生成、重建、清理解决方案、手动删除./bin或./obj或%TEMP%并没有解决问题。我还在Vs2013中从头开始编写了一个新的解决方案,以避免vs2010中的死尸:这个新的解决方案只编译了两次:第三次错误再次出现,没有任何方式。。。机器里有些东西很脏

现在解释

我在86项目的解决方案中遇到了相同的问题,其概要如下:“60.dll”是错误的dll:

- 99.exe 
-- 80.dll
---- 70.dll
------- 60.dll
-- 81.dll
-- 82.dll
---- 60.dll
因此,发生BC32206错误的原因是

The project '99.exe' currently contains references to more than one version of '60.dll, 
a direct reference to version 4.11.5618.23545 and an indirect reference (through '82.dll') to version 4.11.5618.23549. 
Change the direct reference to use version 4.11.5618.23549 (or higher) of '60.dll'
请注意,版本仅在23545到23549之间的版本上有所不同(因此只有“4”单位):在某些重建中,此差异为“1”单位;记住这个数字是(从午夜开始的秒数/2),我意识到由于某种原因,'60.dll'被编译了两次。。。无需做什么:我没有找到datetime对应于更高值请求“23549”的“60.dll”的任何不同副本。因此,Vs2013中确实存在一些问题


最后一次机会:我禁用了Autoincrement,并将程序集版本锁定为X.Y.0.0:这对于我来说已经足够了,因为“60.dll”是一个全面版本的一部分,不应该单独部署(我仍然使用fileVersion来浏览正确的文件)

我可以通过更改 “违规”项目的AssemblyInfo.cs文件中的[assembly:AssemblyVersion(“1.0.*”)]到[assembly:AssemblyVersion(“1.0.5814.0”)]

根据以下观察,这似乎是一个IDE问题:

  • 每次启动Visual Studio时都会报告不同的版本
  • 例如,在版本1.0.5814.18599和1.0.5814.18600之间
  • 而所有bin文件夹中的实际版本为…17929
显然,VS在冲突开始时检测并“缓存”冲突。清洁或重建都没有帮助


而且,似乎只有C类库才会导致这种行为。

我在远程调试时遇到了这个错误。正在调试的计算机上引用的dll的版本在功能上相同,但版本号与编译时引用的版本号不同。修复方法是替换正在调试的计算机上的版本。

我通过编辑.DTSX文件并将“Microsoft SQL Server\100\SDK\Assembly”的所有实例替换为“Microsoft SQL Server\120\SDK\Assembly”,解决了SSIS包中所有脚本任务的此问题

我做了“替换”,然后在VS 2013中刷新,所有错误都消失了

请注意,这些引用已经引用了版本12,但“HintPath”仍然引用“\100\”路径。我想这就是问题的根源
<ItemGroup>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Microsoft SQL Server\100\SDK\Assemblies\Microsoft.SQLServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
 <ItemGroup>
    <Reference Include="Microsoft.SqlServer.ManagedDTS, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91">
      <SpecificVersion>False</SpecificVersion>
      <HintPath>..\..\..\..\..\..\..\..\Program Files (x86)\Microsoft SQL Server\120\SDK\Assemblies\Microsoft.SQLServer.ManagedDTS.dll</HintPath>
    </Reference>
    <Reference Include="System" />
    <Reference Include="System.Data" />
    <Reference Include="System.Windows.Forms" />
    <Reference Include="System.Xml" />
    <Reference Include="Microsoft.SqlServer.ScriptTask, Version=12.0.0.0, Culture=Neutral, PublicKeyToken=89845dcd8080cc91" />
  </ItemGroup>
<Assembly: AssemblyVersion("4.6.1")>
<Assembly: AssemblyVersion("4.6.1.*")>