csproj中引用的程序集不会复制到输出目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了csproj中引用的程序集不会复制到输出目录相关的知识,希望对你有一定的参考价值。

<ItemGroup>
    <Reference Include="Microsoft.WindowsAzure.Configuration">
        <HintPath>..Microsoft.WindowsAzure.Configuration.dll</HintPath>
        <Private>true</Private>
    </Reference>
    <Reference Include="Microsoft.WindowsAzure.Storage">
        <HintPath>..Microsoft.WindowsAzure.Storage.dll</HintPath>
        <Private>true</Private>
    </Reference>
</ItemGroup>

原因是因为我不希望all assemblies from all .NET Core to get copied到我的输出文件夹。

现在在Visual Studio中将Copy Local设置为Yes等于<Private>true</Private>文件中的csproj

问题是,这些DLL文件没有被复制到输出目录。更令人恼火的是,我已经将相同的代码行添加到类似的项目中,并且只有一个文件被复制到输出中。

这可能是什么问题?我该如何调试?我确保这些文件存在且它们的相对路径是正确的。

答案

这可能是什么问题?我该如何调试?我确保这些文件存在且它们的相对路径是正确的。

根据你的描述,我用目标框架Console App (.NET Core)创建了一个.net core 2.0,将你的代码片段添加到.csproj文件中。所有Dll文件都复制到输出目录,没有任何错误。

要调试此问题,我建议您可以仔细检查Dll文件的相对路径(虽然您已确定)和输出路径:

要仔细检查Dll文件的相对路径:

由于您直接将dll文件引用到项目中,因此可以检查程序集是否存在黄色警告符号:

enter image description here

为确保相对路径正确,我们可以手动添加dll文件:右键单击Dependencies-> Add reference-> Browse->选择dll文件并添加它。

输出路径:

.net核心项目的默认输出路径应为:binDebug etcoreapp2.0。当您将Copy Local设置为Yes时,dll文件将复制到文件夹binDebug etcoreapp2.0。如果dll文件没有复制到该文件夹​​,请检查项目的输出路径:Properties-> Build-> Output path。

如果以上信息也没有帮助您调试此问题,请分享更多信息给我们,例如,项目类型,.csproj文件或此项目的任何其他特殊设置。

以上是关于csproj中引用的程序集不会复制到输出目录的主要内容,如果未能解决你的问题,请参考以下文章

防止将引用的程序集 PDB 和 XML 文件复制到输出

使用 csproj dotnetcore 将文件复制到输出目录

了解 csproj 程序集参考

如何设置输出子文件夹以在构建时将引用 dll 复制到

csproj文件中copy指令的使用方式

引用程序集或 dll 是不是应该复制到部署目录中?