Visual Studio 2010 - 如何强制项目引用使用确切路径而不是 GAC 或程序文件?

2023-12-23

我们永远都会遇到这个问题,我们有很多解决方案和一个相邻的 /Components/ 文件夹。我们要引用的所有 DLL 都在这个文件夹中。其中一些是我们从源代码构建的,以使用仅存在于组件二进制文件中的特定版本号,但是当不同计算机上的用户从 TFS 获取最新的所有内容并因此具有确切的磁盘结构时,Visual Studio 仍然会更改对安装在 Program Files、GAC 或其他地方的引用。

已尝试手动编辑 proj 文件以包含 HintPath,例如

<Reference Include="Foo, Version=5.5.5.5, Culture=neutral, processorArchitecture=MSIL">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\Components\Foo.dll</HintPath>
</Reference>

无济于事。我们如何迫使视觉工作室尊重这条道路?


除了指定“hintPath”之外,将“SpecificVersion”设置为 true 似乎是一个解决方案,因为它“防止 Visual Studio 使用多个目标规则进行程序集解析”。

但是,一旦 foo.dll 不可用(在构建或加载项目时),Visual Studio 魔法就会启动并将程序集目标路径更改为最近的“匹配”程序集。

此后,原始 foo.dll 是否恢复到其位置(在目标路径名处)甚至是否恢复都无关紧要CHANGED! - Visual Studio 仍然引用其新发现的匹配项。这是非常不可取的.

可能的解决方案:

  1. 强名称 foo.dll,但 foo.dll 可能仅引用其他强名称程序集(通常是不可取的)。

  2. 通过在父应用程序中注册事件来自定义程序集解析。这允许您准确定义在运行时查找目标程序集的位置 - 但这似乎需要花费太多精力才能解决此问题simple问题。

My 解决这个问题 (easily)的方法是将 LOCAL COPY 设置为 FALSE,并向项目添加构建后步骤,该步骤手动将目标程序集复制到目标 bin 文件夹。不好的部分是在构建后步骤和项目的引用配置之间创建的重复(和解耦)量。

请微软- 在“参考”属性页中添加一个选项,该选项将优先考虑hintPath(我们明确指定的)而不是令人惊讶的魔法路径...或者至少,如果两者彼此不同,则抛出警告/错误!

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

Visual Studio 2010 - 如何强制项目引用使用确切路径而不是 GAC 或程序文件? 的相关文章

随机推荐

  • C++ 中的 rand() 和 srand()

    C 中生成随机数的基础是什么 这背后有什么逻辑或者原理吗 生成的数字是完全随机的吗 假设我正在运行这个程序 include
  • 在javascript中获取元数据属性

    我在从元标记检索信息时遇到问题 我正在尝试从网站获取 img src 但不太明白 这是我正在尝试做的一个例子 var image document querySelector meta property og image getAttrib
  • 如何在引导模式主体上创建具有固定标题的可滚动表格?

    我尝试了这个 但这不起作用 字段值是动态变化的 所以宽度不固定 div class table responsive table class table table hover thead tr tr thead tbody style h
  • 对 Django Q 对象执行逻辑异或

    我想执行逻辑异或 XOR http en wikipedia org wiki Exclusive disjunction on django db models Q对象 使用operator http docs python org 2
  • if 语句无论条件是否满足都运行

    我的 if 语句贯穿始终 就好像条件已满足 即使条件尚未满足 我尝试过移动一些代码 甚至以不同的方式重写 if 语句 但它并没有改变结果 有谁知道我做错了什么 include
  • 如何将字节数组转换为MultipartFile

    我正在接收 BASE64 编码字符串 encodedBytes 形式的图像 并使用以下方法在服务器端解码为 byte BASE64Decoder decoder new BASE64Decoder byte decodedBytes dec
  • 平均特定数字的随机数

    看起来很简单 但我想要一个公式 最好是 net 对于给定的数字 比如说 1 5 公式将输出一个随机数 该数字在一系列中平均约为 1 5 所以它可能是 0 1 1 2 7 1 2 5 2 等 但平均值将接近1 5 澄清 我希望这些数字是正数
  • 在 Mobile Safari 上的 CSS 中使用右浮动时字体大小错误

    我在使用简单的 CSS 布局时遇到问题 它适用于桌面浏览器 但不适用于 iPhone 的 Mobile Safari 使用 style float right 似乎与 Mobile Safari 进行的自动字体大小调整相冲突 以下代码在桌面
  • shmget() 返回的 shmid 在进程中是否唯一?

    这是我无法真正弄清楚的事情 如果你在Linux上使用相同的密钥但在不同的进程中调用shmget 你会得到相同的shmid吗 shmid 是一个临时值 例如文件描述符编号 还是可以在调用之间保留的值 是的 您将收到相同的 shmid 共享内存
  • 如何相对于图像定位 div?

    我有一张图像 它可能会根据某些操作和我想要的几个 div 来改变其位置position on the img tag 简化后的代码如下 div img src someRandomImageUrl div foobar div div 为了
  • Symfony3:致命错误:在 .\bin\console 中找不到类“AppKernel”

    刚开始做一个项目 我跑了composer update并在尝试清除缓存时遇到异常 当我尝试跑步时php bin console server run我收到这样的消息 php bin console server run PHP Fatal
  • 在唯一约束之前清理 SQL 数据

    我想在对两列添加唯一约束之前清理表中的一些数据 CREATE TABLE test a integer NOT NULL b integer NOT NULL c integer NOT NULL CONSTRAINT a pk PRIMA
  • 与Butterknife绑定以在android中动态添加视图

    如何绑定布局中存在的视图 该布局是使用 ButterKnife 动态添加到父视图的 我有一个 LinearLayout 说容器 我有一个自定义布局 其中包含两个按钮 将此布局表示为子视图在活动中我添加了子视图成功到父LinearLayout
  • UILabel sizeToFit 仅适用于关闭自动布局的情况

    所以我正在使用 iOS 6 制作一个应用程序 并且想知道为什么我的代码曾经在 iOS 5 上运行良好 但现在不再运行了 我有一个带有动态 UILabel 的单元格 它会根据它所携带的文本进行调整 这是打开自动布局的情况 这是关闭自动布局的情
  • 使 VBE 助手在使用其他办公应用程序的功能/命令时显示

    我正在编写一些操作其他办公应用程序 office 的代码 当我编写代码时 我希望 VBE 帮助我处理属性和函数 就像它对链接到 Excel 的代码一样 这是怎么做到的 例如 当我输入 word doc 并在后面添加一个点时 我希望 VBE
  • 用于监视 FTP 服务器上的更改的批处理脚本

    我想要制作一个批处理脚本 能够侦听我的 ftp 服务器 并在每次在 ftp 服务器上上传新文件时将文件下载到我的计算机 有任何想法吗 我用的是WinSCP 您可以使用WinSCP 脚本 https winscp net eng docs s
  • WPF - 具有三列的 GridSplitter

    我有一个带有 3 列网格的应用程序 第一列和第二列之间的网格分离器工作得很好 为了使分离器位于第二列和第三列之间 我为分离器制作了一列 所以现在第三列实际上是第四列 当我调整大小时 其他列也会缩小 我认为这是因为我将它们设置为相对大小 但我
  • Golang XML:解组忽略名称空间

    我正在 Go 系统中实现一项从外部 SOAP 服务读取数据的服务 现在我正在为其编写测试 我遇到了这个问题 unable to unmarshal request body for testing expected element type
  • CALayer 优化?

    我添加了几个 CALayer 作为 UIView 层的子层 每层的内容是从服务器下载的不同图像 每个图层都从屏幕外动画到随机生成的位置 图像数据是异步下载的 每个图像大约为 300x300 或更小 由于随机放置 图层重叠 有些图层被上面的图
  • Visual Studio 2010 - 如何强制项目引用使用确切路径而不是 GAC 或程序文件?

    我们永远都会遇到这个问题 我们有很多解决方案和一个相邻的 Components 文件夹 我们要引用的所有 DLL 都在这个文件夹中 其中一些是我们从源代码构建的 以使用仅存在于组件二进制文件中的特定版本号 但是当不同计算机上的用户从 TFS