通过“添加引用”添加的程序集不会复制到输出目录,除非在代码中引用

2024-07-03

情况:

  • 项目1是解决方案中的一个程序集
  • 项目2是同一解决方案中的可执行汇编项目
  • 项目 2 具有对项目 1 的项目引用(通过添加引用)
  • 项目2没有directly代码中引用项目1中的命名空间/类型
  • 项目2使用Ninject动态加载项目1并使用其中的实现类

Problem:

  • 即使引用的“复制本地”设置为“True”,并且引用的程序集不存在于 GAC 中,引用的程序集仍是not复制到输出构建目录
  • Ninject 随后找不到程序集,因此绑定/解析失败

这个过程适用于相同的设置,其中引用的程序集中的某些类被直接引用,并由 Ninject 加载,所以我相信原因如下:如果 VS 检测到引用的程序集中没有类型被引用in code,它不会复制引用的程序集,即使它是使用 Copy Local = True 添加为引用的。

解决方案:

  • 找到一种方法告诉 VS,“复制本地(我是认真的)”= True ——这将是我理想的解决方案。
  • 添加对引用程序集的文件引用。不太好,因为我失去了项目参考的优势(这可能完全在我的脑海中,也可能不完全在我的脑海中)。
  • 在代码中以某种“令牌”方式引用程序集。凌乱 - 我想使用引用列表来维护我想要包含的程序集/模块的列表。
  • 复制装配体的构建后步骤。凌乱,不理想。

任何人都可以帮助解决第一个解决方案,或者建议另一个解决方案吗?


如果您部署/复制的应用程序包含对在 GAC 中注册的自定义组件的引用,则无论“复制本地”设置如何,该组件都不会随应用程序一起部署/复制。See MSDN http://msdn.microsoft.com/en-us/library/ez524kew.aspx

您必须通过添加来强制将 local 复制为 truePrivateGAC 程序集参考的元数据。编辑您的项目文件并添加Private元数据:

<Reference ..>
    <Private>True</Private>
</Reference ..>

<ProjectReference ..>
    <Private>True</Private>
</ProjectReference ..>

现在您的 GAC 程序集应该从输出文件夹中复制/删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过“添加引用”添加的程序集不会复制到输出目录,除非在代码中引用 的相关文章

随机推荐

  • 打开我的 Cloud Run 服务的 URL 时出现 403“错误:禁止”

    我构建了容器映像 然后使用 Cloud Console 部署到 Cloud Run 但是 当我打开服务的端点 URL 时 我得到一个403 Error Forbidden page 如果您在访问 Cloud Run 服务时收到 403 Er
  • MS Access 获取 ISO 标准周数

    令我惊讶的是 我在网上找不到任何现有的解决方案 但我只需要一个返回 ISO 标准周数的 SQL 函数 即第一周的开始始终是一年中的第一个星期一 所有 DatePart 函数选项都不会始终返回正确的结果 我曾想过选项 vbFirstFourD
  • 如何在 Matlab 中标记两个向量?

    我有一个 2 列矩阵 称为M 我使用 Matlab 将其可视化为两个向量plot命令 plot M 我有两个问题 我想在绘图上标记向量本身 我想在绘图上标记矩阵的每一行 即每个向量分量 我该如何去做这些事情呢 一个例子 M cumsum r
  • ld 链接器错误 - 架构 x86_64 的未定义符号

    我正在尝试链接一个单模块汇编语言程序yasm我收到以下错误ld Undefined symbols for architecture x86 64 start referenced from implicit entry start for
  • 在 Dev Box 上安装 SQL Server 2008 时要使用哪些服务帐户

    我正在我的开发计算机上安装 SQL Server 2008 在安装过程中 系统要求我为不同的服务分配帐户 如果这是一台简单的开发机 我应该使用什么帐户来提供未分配用户的服务 我可以使用我登录的帐户 我是这台机器上的唯一用户 吗 我应该使用
  • 流与缓冲区

    我是 C 语言新手 我目前正在阅读 K R 在那里 我对其中关于文本流的定义感到困惑 文本流是分成新行的字符序列 每行由 0 个或多个字符组成 后跟一个换行符 为了了解这个流 我认识了一个新术语 即缓冲区 我只知道 输入和输出设备之间的连续
  • 有没有人设法从谷歌登录(Flutter)获取id令牌

    我正在尝试将我的用户与我的后端服务器连接起来 我使用了 flutter 官方谷歌登录插件中的示例 https pub dartlang org packages google sign in https pub dartlang org p
  • 8 特定应用程序不可用的功能

    Hi I have an app which is also live For the next version I want to implement deep linking for this I have to enable Asso
  • 通过python ctypes调用带有char *参数的C函数差异python2和python3

    我正在将一个文件从 python2 转换为 python3 该文件使用以下命令调用 C 函数ctypes模块 下面的最小示例在 python2 中有效 但在 python3 3 11 中引发以下错误 OSError 异常 访问冲突写入 0x
  • 无法将 Azure Web App - NodeJS 连接到 Azure Mysql

    我正在为 Node js 应用程序使用 Azure 连接字符串 来自 Azure 门户 但仍然无法连接到 Azure Database for Mysql 服务器 var conn mysql createConnection 主机 您的主
  • 构建 Angular 进行生产,无需安装 devDependency

    我目前正在尝试创建一个 Docker 容器来构建我的生产 Angular 应用程序 我正在使用 npm 我只想安装依赖项 所以没有 devDependency 所以我想这样做 npm install only prod ng build p
  • 广告投放刷新率

    我的网站上有一个页面 人们可以在其中观看直播 我尝试每十分钟通过 OpenX 更新一次广告横幅 ad tag top left html ad tag top left html 这没有完成这项工作 我想知道是否有人以前做过这个或有任何建议
  • 有必要了解代码访问安全(CAS)吗?

    使用 C 进行桌面应用程序开发是否有必要了解代码访问安全性 CAS 这是一个相当广泛的问题 答案取决于很多因素 然而 两个最重要的因素是您的目标环境和部署方法 大多数消费者软件都是通过安装程序 MSI 进行安装的 并在目标计算机上获得完全信
  • 将图像添加到 UITextView

    在我的应用程序中我有一个UITextView文本视图下方有一个按钮 用于将照片插入到文本视图中UITextView编辑时 我的要求是用户能够编辑其中的文本 并在需要时插入图像 类似于 StackOverflow 应用程序自己的UITextV
  • ARRAffinitySameSite cookie 的用途是什么?

    我正在调用 Azure 应用程序服务应用程序并发现这两个 cookie 我明白了ARRAffinitycookie是为了确保请求总是发送回同一个后端实例 但是cookie是什么呢 ARRAffinitySameSite饼干为了什么 的目的A
  • 使用 devise 和 cucumber 测试登录

    我正在尝试使用 Cucumber 测试登录功能 我的文件 users steps rb 包含 Given I am a user named with an email and password do name email password
  • 放大特定路线谷歌地图

    我有一个随机纬度和经度点的列表 我正在它们之间绘制一条路线 我的问题是如何在我在下面的实用方法中制作的谷歌地图中绑定这条路线 public static void drawRouteIntoMap final List
  • AngularJS 2如何访问TS文件中的DOM元素?

    我是 AngularJS 的新手 我正在尝试将旋转器作为所有图像的背景 有多个图像 所以我不能使用单个变量isLoadedts 文件内 我在模板中使用它 img src document thumbUrl class spinner 然后在
  • 如何在 Shopify 中显示元字段

    我们有一组产品希望免费送货 为此 我将其重量设为 0 并创建了基于重量的 0 磅运输 这样运输就可以通过购物车 但是 我想在产品页面上显示实际重量 我已经为运输重量创建了一个元字段 我试图将该值调用到产品页面 但没有任何运气 这是我正在尝试
  • 通过“添加引用”添加的程序集不会复制到输出目录,除非在代码中引用

    情况 项目1是解决方案中的一个程序集 项目2是同一解决方案中的可执行汇编项目 项目 2 具有对项目 1 的项目引用 通过添加引用 项目2没有directly代码中引用项目1中的命名空间 类型 项目2使用Ninject动态加载项目1并使用其中