将非GAC引用添加到项目中

时间:2008-12-22 19:22:48

标签: visual-studio-2008 reference

每次我在我的GAC中的visual studio 2008中添加对Web项目的引用时,它都会将引用添加为GAC引用,并且不会将该文件复制到我的bin目录中。但是出于部署目的,我想将引用添加为非GAC引用,因此它将dll添加到我的bin目录中。我尝试使用浏览按钮来选择参考,而不是从列表窗口中选择,但这也会添加GAC参考。

这些引用都包含.refresh文件,并且没有在文件属性中复制local的选项。

请帮忙吗?!?

8 个答案:

答案 0 :(得分:4)

右键单击引用,选择属性,将Copy Local从False翻转为True

答案 1 :(得分:2)

克里斯,你可能已经很久没遇到这个问题了,但是当我在VS 2005中尝试做同样的事情时,我偶然发现了你的问题。如果有其他人来这里寻找解决方案......

当然,您是正确的,因为Web项目没有为您提供正常项目所引用的引用的本地副本选项,因此Copy Local ...解决方案是非首发。

我通过简单地将现有文件添加到我的Web应用程序的bin目录来解决这个问题。缺点是它不添加刷新引用,因此如果重建外部文件,则必须手动刷新本地副本。

答案 2 :(得分:1)

将其设置为“复制本地”

答案 3 :(得分:1)

就像其他人提到的那样,你可能已经很久没遇到这个问题,但我想我会把我的解决方案放在一起。

我的问题有点不同。我想要一个.dll的非GAC版本,所以我的构建服务器可以编译项目,而不会在该服务器上安装.dll。

为了解决这个问题,我手动编辑了.csproj(.vbproj)文件(使用记事本)并更新了参考文件以指向本地版本。如果这在未来证明很麻烦,我将不得不卸载项目并使用.dll。

就我而言,我更改了一行:

<Reference Include="Microsoft.Data.Entity.CTP, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

是:

<Reference Include="Microsoft.Data.Entity.CTP, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\Lib\Microsoft.Data.Entity.CTP.dll</HintPath>
</Reference>

其中..\Lib是解决方案级别的目录,是项目文件中的一个目录。

答案 4 :(得分:1)

1)从项目中删除GAC参考

2)关闭Visual Studio

3) gacutil / uf [YourDllName] (gacutil.exe应该在“C:\ Program Files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin”中找到)

4)重新打开VS并在“浏览”标签中添加引用 你将把dll复制到bin文件夹和.refresh文件中(不再有GAC依赖) +++

答案 5 :(得分:1)

另一种实现此目的的方法是手动创建XXX.dll.refresh文件夹并将它们添加到bin目录中。

我实际创建了一个小助手项目来添加我的solution \ Dependencies文件夹中的所有文件。对于VB.NET很抱歉,但它很快就会和VS做同样的事情。

    For Each fullFileName In Directory.GetFiles("..\..\..\Dependencies\", "*.DLL")
        Dim shortFileName = Path.GetFileName(fullFileName)
        Dim refreshFileName = shortFileName + ".refresh"

        Dim contents = "..\Dependencies\" + shortFileName

        File.WriteAllText(refreshFileName, contents)
    Next

答案 6 :(得分:0)

如果您引用.NET Framework标准程序集,那么据我所知,您无法拥有它的本地副本。唯一的方法是在目标计算机上安装框架。

它是第三方程序集,然后您可以从它所在的目录手动将程序集复制到bin目录。

您也可以尝试通过Windows SDK中的gacutil.exe从GAC中删除程序集,看看如果您尝试通过“浏览”选项卡添加引用,会发生什么。

答案 7 :(得分:0)

我花了好几个小时试图解决这个问题并跑过一个帖子说打开视觉工作室作为管理员。它解决了这个问题。所有引用的dll都被添加到bin文件夹中。