如何在未经我许可的情况下让Visual Studio在构建期间停止复制DLL?

Gab*_*ner 8 copy-local visual-studio

我有一个依赖于几个DLL引用的Visual Studio项目.以下是我的csproj中这些引用的示例:

<ItemGroup>
  <Reference Include="Class1.Project1">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\bin\Class1.Project1.dll</HintPath>
    <Private>False</Private>
  </Reference>
  <Reference Include="Class1.Project2">
    <SpecificVersion>False</SpecificVersion>
    <HintPath>..\bin\Class1.Project2.dll</HintPath>
    <Private>False</Private>
  </Reference>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

但是,当我将此类作为项目依赖项包含在Web站点项目中时,Visual Studio将查找上面显示的依赖项的依赖项.在构建期间,Visual Studio将"复制本地"属性默认为"True",并将这些依赖项复制到我的网站的〜/ bin目录中.

反过来,这会覆盖此目录中已存在的DLL文件的版本.这会导致以下错误:

无法加载文件或程序集'Class5.Project5,Version = 3.6.1861.2,Culture = neutral,PublicKeyToken = dfeaee0e3978ac79'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)

如何让我的Visual Studio默认情况下,"复制本地"设置为"假"的一切?我不希望Visual Studio在构建期间自动复制DLL文件.我也不希望我的领带构建以非常一个DLL的特定版本.

Ser*_*gio 1

我曾经遇到过这个问题

发布时:防止覆盖现有 dll 文件的最简单方法是将它们设置为只读。对于每个无法替换的文件,您将在发布时收到警告,但它会完成这项工作。

构建时:要自动关闭 CopyLocal,您需要将 dll 文件放在 GAC 上。