- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个由 C#“MyAssemblyTester”.NET 2.0 exe 引用的 C#“MyAssembly”.NET 2.0 程序集。我正在使用 Visual Studio Express 2015。这两个项目都可以编译并正常工作。
如果我向“MyAssembly”项目添加一个对非常旧的 OCX 的引用(2000 年之前:Teechart Pro Activex 4.0.1.7,但我在使用其他旧的 COM DLL 组件时遇到了同样的问题)并重新编译,“MyAssembly”项目编译和链接正常,但我有很多“MyAssemblyTester”错误,如下所示:
2>------ Rebuild All started: Project: MyAssemblyTester, Configuration: Debug x86 ------
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Xml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3268: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "MyAssembly" or retarget your application to a framework version which contains "System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Configuration, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Deployment, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Runtime.Serialization.Formatters.Soap, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Data.SqlXml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3268: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the framework assembly "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "MyAssembly" or retarget your application to a framework version which contains "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
如果我将“MyAssembly”和“MyAssemblyTester”的目标框架都更改为 .NET 4.0,问题就解决了。但是,由于向后兼容,我想要一个 .NET 2.0 目标框架。
我认为问题的根源在于 VS2015 生成的 Interop 程序集(AxInterop.TeeChart.dll 和 Interop.TeeChart.dll)面向 .NET 4.0。实际上 AxInterop.TeeChart.dll 的 ILSpy 输出是:
// AxInterop.TeeChart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// Global type: <Module>
// Architecture: AnyCPU (64-bit preferred)
// Runtime: .NET 4.0
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: AxHost.TypeLibraryTimeStampAttribute("05/13/2009 16:17:54")]
// System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
// Interop.TeeChart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
// System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
// System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
与Interop.TeeChart.dll类似。
一些详细的构建日志(1> 是 MyAssembly 和 2> MyAssemblyTester):
...
1>Using "ResolveComReference" task from assembly "Microsoft.Build.Tasks.Core, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
1>Task "ResolveComReference"
1> Creating new cache file at "obj\x86\Debug\MyAssembly.csproj.ResolveComReference.cache".
1> Adding a matching tlbimp reference for the aximp reference "AxTeeChart".
1> Resolving COM reference for item "stdole" with a wrapper "primary".
1> Determining dependencies of the COM reference "stdole".
1> Resolved COM reference for item "stdole": "C:\Windows\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll".
1> Resolving COM reference for item "AxTeeChart" with a wrapper "primaryortlbimp".
1> Determining dependencies of the COM reference "AxTeeChart".
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\TlbImp.exe C:\Windows\SysWOW64\teechart.ocx /namespace:TeeChart /machine:X86 /out:obj\x86\Debug\Interop.TeeChart.dll /sysarray /transform:DispRet /reference:"C:\Program Files (x86)\ABCD\abcdSDK\DLL\x86\abcdsdk.dll" /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:C:\Windows\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll
1> Microsoft (R) .NET Framework Type Library to Assembly Converter 4.6.81.0
1> Copyright (C) Microsoft Corporation. All rights reserved.
1>
1> TlbImp : Type library imported to C:\repSVN\Prod2NCG2\prodmspeqspcp\trunk\src\MyAssembly\obj\x86\Debug\Interop.TeeChart.dll
1> Resolved COM reference for item "AxTeeChart": "obj\x86\Debug\Interop.TeeChart.dll".
1> Resolving COM reference for item "AxTeeChart" with a wrapper "aximp".
1> Determining dependencies of the COM reference "AxTeeChart".
1> C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools\AxImp.exe C:\Windows\SysWOW64\teechart.ocx /out:obj\x86\Debug\AxInterop.TeeChart.dll /rcw:obj\x86\Debug\Interop.TeeChart.dll
1> Generated Assembly: C:\repSVN\Prod2NCG2\prodmspeqspcp\trunk\src\MyAssembly\obj\x86\Debug\AxInterop.TeeChart.dll
1> Resolved COM reference for item "AxTeeChart": "obj\x86\Debug\AxInterop.TeeChart.dll".
1>Done executing task "ResolveComReference".
1>Done building target "ResolveComReferences" in project "MyAssembly.csproj".
...
...
...
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3258: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the .NET Framework assembly "mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which has a higher version "4.0.0.0" than the version "2.0.0.0" in the current target framework.
...
...
...
2>C:\Program Files (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): warning MSB3268: The primary reference "MyAssembly" could not be resolved because it has an indirect dependency on the framework assembly "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "MyAssembly" or retarget your application to a framework version which contains "System.Numerics, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
2> Primary reference "mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
2> Resolved file path is "C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll".
2> Reference found at search path location "C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll".
2> This reference is not "CopyLocal" because it's a prerequisite file.
2> The ImageRuntimeVersion for this reference is "v2.0.50727".
2> Primary reference "System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089".
2> Resolved file path is "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll".
2> Reference found at search path location "{TargetFrameworkDirectory}".
2> For SearchPath "{TargetFrameworkDirectory}".
2> Considered "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.winmd", but it didn't exist.
2> This reference is not "CopyLocal" because it's a prerequisite file.
2> The ImageRuntimeVersion for this reference is "v2.0.50727".
2> Resolved file path is "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll".
...
...
...
2> Reference found at search path location "{TargetFrameworkDirectory}".
2> For SearchPath "{TargetFrameworkDirectory}".
2> Considered "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.winmd", but it didn't exist.
2> This reference is not "CopyLocal" because it's a prerequisite file.
2> The ImageRuntimeVersion for this reference is "v2.0.50727".
2>Done executing task "ResolveAssemblyReference".
....
如何手动更改 Interop 程序集的目标框架?也许我需要更改 AxImp 和 TlbImp 路径或它们的某些选项?
还有其他想法吗?
谢谢
最佳答案
我终于解决了安装“Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1”,然后添加到“Post-build event command line”:
"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\TlbImp.exe" C:\Windows\SysWOW64\teechart.ocx /namespace:TeeChart /machine:X86 /out:$(TargetDir)\Interop.TeeChart.dll /sysarray /transform:DispRet /reference:"C:\Program Files (x86)\ABCD\abcdSDK\DLL\x86\abcdsdk.dll" /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Drawing.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll /reference:C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Xml.dll /reference:C:\Windows\assembly\GAC\stdole\7.0.3300.0__b03f5f7f11d50a3a\stdole.dll
"C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\AxImp.exe" C:\Windows\SysWOW64\teechart.ocx /out:$(TargetDir)\AxInterop.TeeChart.dll /rcw:$(TargetDir)\Interop.TeeChart.dll
(从详细的构建日志中复制命令,将 AxImp 和 TlbImp 的路径更改为 3.5 SDK,并将 Interop 程序集的输出路径从 obj\x86\Debug 更改为 $(TargetDir))。
我想知道是否有更清洁的解决方案。
关于C# VS2015 Express : The primary reference . .. 无法解析,因为它间接依赖于 .NET Framework 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49427716/
如果我有一个 MongoDB 副本集,其中有 3 个节点(主要节点、次要节点、仲裁节点),并且主要节点出现故障,现在次要节点成为主要节点,您如何动态处理客户端中的更改,以便它们现在写入基本的? 我在开
我正在研究使用 MongoDB ReplicaSet 实现高可用性。 但是刚刚发现在3个节点的ReplicaSet中,如果PRIMARY mongod是唯一剩下的(也就是另外2个mongod实例死亡或
我有一个表 person 包含个人信息,我还有另一个表 person_contact 来存储关于那个人的联系信息(type 显示如果它是电话记录或电子邮件记录,record 包含实际的电话号码或电子邮
堆栈:使用 Ambari 2.1 安装 HDP-2.3.2.0-2950 源数据库模式位于 sql server 上,它包含几个表,它们的主键为: 一个varchar Composite - 两个 v
对于典型的现代 RDBMS,期望通过一个特定的主键查询与通过键查询哈希表一样快,是否正确? 或者是否有“实际工作”来遍历表并跟踪主键值?即使有主键的自动索引,这似乎也是不可思议的浪费。 最佳答案
我正在使用 dataset尝试将 postgres 数据库备份到 sqlite 文件中的库。我正在运行的代码如下: local_db = "sqlite:///backup_file.db" with
堆栈:使用 Ambari 2.1 安装 HDP-2.3.2.0-2950 源数据库模式在 sql server 上,它包含几个表,这些表的主键为: 一个变量 复合 - 两个 varchar 列或一个
INT PRIMARY KEY 和 INTEGER PRIMARY KEY 在定义表的模式时有什么区别吗?使用 int 主键时,我生成了 sqlite_autoindex thing;当整数主键时,我
我通过阅读一本书开始学习 JPA,他们给出了一个单向映射,如下所示: 表格车辆 (vehicleId, brand, model, dev_year, extraId) vehicleId is th
查看“mysqldump -d”并看到一个键是 KEY,而不是“PRIMARY KEY”或“FOREIGN KEY” 什么是关键? 示例: CREATE TABLE IF NOT EXISTS `TA
我已经有了一个包含一些数据的表格。现在我想添加一个新列“id”并使其成为主键。我正在使用 MySQL 工作台。所以,我只是添加一个新 key ,然后将其设置为 PK 和 NN。但不知为何,这个看似简单
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
为什么这会显示警告,因为它默认从 User 模型中获取主键,所以我还应该再次将主键声明为 Registration 或候选模型。 模型.py from django.db import models
在创建域模型时,我们的实体几乎总是有 Id 字段或属性,代表数据库中相应表的主键列。我的问题是 - 如果我有这个与域模型无关的关键属性(换句话说,它只是数据库问题;Martin Fowler 更喜欢将
如果将标识列作为主键是一种好的做法,请问您是否有意见?对于 ORM 工具,表上有标识列会有所帮助。但是还有其他副作用,例如意外重复插入。 谢谢奈恩 最佳答案 是的,使用 INT(或 BIGINT)ID
我试图在谷歌上找到它,但那里给出的答案并不令人满意。任何人都可以解释明显的区别。 实际上,如果使用主键来唯一选择数据,那么唯一键有什么需要? 什么时候应该使用主键,什么时候应该使用唯一键? 最佳答案
Hybris HAC 中的 PK 分析器因某种原因被阻止。有没有其他方法可以确定这个 PK 属于哪个项目? 提前致谢 最佳答案 尝试使用 HMC: _your_server_/hmc/hybris?o
我在“表类别”中删除了一行(第 20 行),请告诉我如何重新排序 catid(主键)?此时是19点后的21点。 谢谢 最佳答案 你不能。您能得到的最接近的是 truncate table ,这将删除表
这是我的购物车表数据库,当我将产品添加到购物车表时出现错误 Database mysql_query($query, $db) or die(mysql_error($db)); $query = '
我正在编写一个谱系应用程序,我正在尝试弄清楚我的数据库模型的各个方面。 我有一张供人们使用的 table : create table person ( id int unsigned not n
我是一名优秀的程序员,十分优秀!