问题标签 [assembly-references]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 需要 Hashtable 和 Arraylist
我正在尝试在我的 Windows 7 Phone 应用程序中使用其他人的 C# 类。这些类使用 Hashtable 类型的对象。
有问题的文件有
在顶部,所以我假设这是它想要的 Hashtable 对象。
当我尝试构建我的解决方案时,我收到找不到类型或命名空间名称“Hashtable”的错误,您是否缺少 using 指令或程序集引用。
在微软的 Hashtable 文档中,我看到它说 Assembly: mscorlib
但是如果我尝试通过 Project>Add Reference 添加 mscorlib,VS 说它不能添加它,因为它是由构建系统自动引用的。
我错过了什么?
.net - 使用外部程序集:找到的程序集的清单定义与程序集引用不匹配
我知道这个问题似乎在 stackoverflow 和网络上都得到了回答,但我的问题是不同的。
当我有以下设置时,我试图了解如何不使用 GAC(老板说不):
该项目使用 NHibernate 和 Antlr3.Stringtemplate 两者都是第三方程序集。NHibernate 引用了 Antlr3.Runtime 版本 3.1.3.42154 Antlr3.Stringtemplate 引用了 Antlr3.Runtime 版本 3.3.1.7705
当另一个不可用时,一个会出错。
我尝试绑定重定向,但这不起作用,因为版本之间的 publicKeyToken 不同。它最终寻找具有与 3.1.3.42154 版本匹配的公钥令牌的 3.3.17705。
在 GAC 中安装一个或两个都可以。但是,我的老板不会让我在 GAC 中安装任何东西。
我还尝试将两个 DLL 都放在 BIN 目录中,方法是包含一个带有版本 3.1.3.42154 文件夹的 Lib 项目。我告诉它总是复制,所以我得到 /bin/Lib/3.1.3.42154/Antlr.Runtime.dll 然后我添加了一个探测元素来探测那个目录。这不起作用,我得到了同样的错误。
如何使用引用另一个第三方程序集的第三方程序集,两者都引用不同的版本?
更新:
AppDomain.CurrentDomain.GetAssemblies() 显示版本已加载到应用程序域中,但是仍然错误提示找不到 thta 3.1.3。
以下是在调用错误代码之前从 AppDomain.CurrentDomain.GetAssemblies() 加载的内容。前两行是 GetAssemblies() 中的内容,第三行是错误所说的缺失内容。
asp.net - 为什么 ASP.NET 以不同的方式解析程序集引用?
我真的很努力地寻找一个类似的问题来获得一些线索,但似乎没有人描述我们所遇到的情况,所以就这样吧。
背景
我们的产品具有以下一般设计:
[本地安装文件夹]
- 包含一组 .NET 程序集,实现了我们的大部分产品功能。
- 示例:Implementation1.dll、Implementation2.dll
[广汽]
- 客户端API.dll。我们的客户端程序集,从最终用户 Visual Studio 项目中引用。对本地安装文件夹中的实现 dll 有很强的引用。
在 ClientAPI.dll 中,我们有一个需要最终用户项目调用的入口点。让我们称之为Initialize()
。
我们要做的第一件事是使用事件在当前域上Initialize
安装一个所谓的程序集解析处理程序。AssemblyResolve
该处理程序将知道如何定位实现 dll 并将它们加载到客户端进程中,使用Assembly.Load()
.
考虑一个控制台应用程序。它看起来像:
现在,在控制台/Windows 窗体/WPF 世界中一切都很好。我们的程序集解析处理程序已正确安装和调用,并且一旦 ClientAPI.dll 需要它们的功能,它就可以成功解析对实现 DLL 的引用。
问题陈述
话虽如此,我们不打算仅支持控制台或 WPF 应用程序,因此我们依赖于 ASP.NET 中的相同设计。因此,在 VS 2010 中创建一个新的 ASP.NET Web 应用程序项目,我们认为一切都会像这样简单:
在 ASP.NET 运行时世界中停留了 20 到 30 个小时,在开发服务器和 IIS 中尝试了上述内容,我们了解到那里的情况并不像我们预期的那样。
事实证明,在 ASP.NET 中,只要在任何地方引用ClientAPI
该类,它对任何其他程序集的所有引用都会立即解析。不仅如此:结果被缓存了(根据设计,自从我们发现 .NET 2.0 以来),这意味着我们根本没有机会尝试帮助 CLR。
如果不进一步详细说明我们尝试和学习的不同事物,基本上可以归结为我们遇到的这个问题:
为什么 ASP.NET 会像这样解析引用?它与其他类型的应用程序如何做到这一点不兼容,更重要的是,它没有根据 .NET/CLR 运行时的文档,指定对外部类型/程序集的引用将在第一次需要时解析(即当首先在代码中使用)。
任何形式的见解/想法将不胜感激!
visual-studio - Visual Studio 11 缺少程序集引用
在尝试在 Visual Studio 中构建最简单的 Metro 应用程序时,我收到十几个关于缺少程序集引用的错误(错误 WMC1003)。我刚刚从这里安装了 VS 11:http: //www.microsoft.com/download/en/details.aspx? displaylang=en&id=27543
任何和所有的帮助表示赞赏!以下是指定错误的构建输出的一部分:
.net - Intellisense 忽略程序集引用
我的解决方案中有一个项目程序集引用到另一个项目。
似乎 VS2010 的 Intellisense 并没有意识到引用的存在;它给了我
The type or namespace name [assembly-specific part of namespace] does not exist in the namespace [namespace common to both projects/assemblies] (are you missing an assembly reference?)
我的using
陈述中有一个错误The name [class in referenced assembly] does not exist in the current context
在我使用引用程序集中的类时出现错误。
但是,该参考在实践中运行良好:参考项目成功构建,并且代码运行良好。
(两个项目都针对同一个框架。如果相关,这是一个 SharePoint 项目,所以两个程序集都存在于 GAC 中;我不知道这是否意味着即使引用实际上是它们也可以“找到”对方失踪。)
我以前从其他程序集引用此程序集时遇到过类似的问题。通常,错误仅在带有引用的文件打开时保留在错误列表中。
由于一切都很好,这真的只是一个烦恼,但我真的很想修复它。
c# - 设计师不认识 Telerik
我在设计器中得到了以下代码(它是自动生成的),但它的 Telerik 用红色下划线表示
在全局命名空间中找不到类型或命名空间 Telerik(您是否缺少程序集引用?)
c# - C# ListView SelectedIndices 和 SelectedItems 计数问题
在 C# 2010 express 上使用新的 winform 项目时遇到一些问题,这两种数据类型都有方法计数,这似乎记录在 MSDN 上,但是我似乎无法让它们工作。编译时,listview 控件本身似乎很好。
错误 1“System.Windows.Forms.ListView.SelectedListViewItemCollection”不包含“Count”的定义,并且没有扩展方法“Count”接受“System.Windows.Forms.ListView.SelectedListViewItemCollection”类型的第一个参数(您是否缺少 using 指令或程序集引用?)
错误 1“System.Windows.Forms.ListView.SelectedIndexCollection”不包含“Count”的定义,并且没有扩展方法“Count”接受“System.Windows.Forms.ListView.SelectedIndexCollection”类型的第一个参数(您是否缺少 using 指令或程序集引用?)
两种数据类型似乎都已定义。也不能使用索引。
c# - 为什么在 DAL 中使用 Microsoft Sql Server 管理对象 (SMO) 需要在引用 DAL 的项目中引用 SMO dll?
我使用以下方法在谷歌上搜索了答案:
“'Microsoft.SqlServer.Management.Smo.Server' 类型在未引用的程序集中定义。”
为什么在 DAL 中使用 Microsoft Sql Server 管理对象 (SMO) 需要在引用的项目中引用 SMO dll?
在引用的项目中使用 sql smo
分层解决方案中的sql smo
sql smo 参考要求
可能还有其他一些人还没有找到这个问题的解决方案或解释。
诚然,我只是一个熟练的 googler,所以如果有人想给我力量等级并指出现有资源的方向,我很乐意从那里开始探索。
这是我的设置:
我有一个分层的解决方案:DAL、业务逻辑、服务、UI。有一个托管服务的主机项目。我实际上正在使用 VS2010 扩展layerguidance.codeplex.com来设置所有这些项目,这非常好。我正在使用 SQL Server 2008 Express 和 SMO v 10。所有解决方案项目都使用项目引用进行引用。所有项目都编译到一个通用的顶级 Bin 文件夹。
现在的问题:
在 DAL 中的类中,我有一个SmoTasks
类处理与 SMO 对象的接口,还有一个Utilities
类从其抽象SmoTasks
并提供对其功能的访问,而不需要任何 SMO 对象作为参数,因此引用项目(阅读:业务逻辑层)可以使用接口非 SMO 类型。DAL 中一切正常,编译良好,方法通过了测试——它在我的世界中的位置感觉很好。然后在 BLL 中,我有一个组件处理使用Utilities
该类为将通过服务公开的应用程序执行数据库配置。BLL 使用对 DAL 的项目引用并按预期查看 DAL 类(a la intellisense)。但是,当我编译时,我得到:
类型“Microsoft.SqlServer.Management.Smo.Server”在未引用的程序集中定义。您必须添加对程序集“Microsoft.SqlServer.Smo, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”的引用。
BLL 中的代码如下所示:
错误指向的行是:
显然,我可以将 SMO 引用添加到 BLL,然后 BLL 会很高兴,但这违反了我松散耦合项目的设计目标。如果我将 SMO 程序集添加到 BLL,它会编译然后在服务层中引用 BLL 对象不会引起投诉。我的问题是,为什么?更具体地说:当DAL 中的类已经抽象出 SMO 类型时,为什么 BLL 需要对 SMO 的引用?Utilities
我想要的是所有与 DAL 相关的数据库(duh),并且只有 BLL 中的业务逻辑(double duh)。 是否有另一种方法可以使用我忽略的 SMO 来实现这一目标?
感谢您宝贵的时间和答案,我虚心等待您的回复
编辑:我已经根据 Chris 的建议调整了我的解决方案,验证了我正在使用项目 refs(我是),在我浏览和手动添加,然后我继续为这些程序集设置 Copy Local = True 只是为了确保它们在附近......但我仍然遇到这个烦人的编译错误。
visual-studio-2010 - VS2010 和引用正确的程序集(调试/发布)?
我在 VS2010(项目 A)中有一个 MVC3 项目,我想在我的其他项目之一(项目 B)中引用一个程序集。项目 B 输出到 \bin\Debug 和 \bin\Release。我想根据项目 A 的配置添加对正确项目 B 程序集的引用。有没有办法做到这一点而不必在项目 A 的解决方案中包含项目 B?如果我过去需要这样做,我总是将项目包含在我的解决方案中,这是唯一也是最好的选择吗?
.net - .Net 所需的程序集参考
我在我的一个 C# 项目中使用了 ReSharper 的“优化引用”功能,它删除了对 Fluent Nhibernate / Nhibernate 的一对引用。我认为这是完全有效的,因为我没有在该项目中直接引用他们的任何内容。
当我重建解决方案时,我受到了欢迎:
'FluentNHibernate.Mapping.ClassMap`1' 类型在未引用的程序集中定义。
该项目(我们将称为A)不直接引用 Fluent Nhibernate,但确实引用了另一个项目B,该项目使用 Fluent NHibernate 进行映射。至于B在A中的用法,我确实使用了一个在其中包含 FNH Map 的类,但我不在A中的任何地方使用/引用该内部类。
我想如果 .Net 项目没有直接在代码中引用程序集,它就不需要在项目引用中。或者在这种情况下这个假设是错误的?