gpt4 book ai didi

compiler-errors - VS2017 Nuget 包在编译时复制到 bin\debug 但不是 bin\release

转载 作者:行者123 更新时间:2023-12-02 10:59:36 26 4
gpt4 key购买 nike

我的项目中包含 3 个 Nuget 包。当我构建“调试”版本时,dll 被复制到 bin\debug 目录中,并且项目可以正确编译。

但是,当我尝试构建发布版本时,我得到一个“找不到类型或命名空间名称“包名”。

项目.csproj文件如下:

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
<DocumentationFile>bin\Debug\MyProject.XML</DocumentationFile>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\MyProject.XML</DocumentationFile>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
</PropertyGroup>
<ItemGroup>
<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
</Reference>
<Reference Include="Excel, Version=2.1.2.3, Culture=neutral, PublicKeyToken=93517dbe6a4012fa, processorArchitecture=MSIL">
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
</Reference>
</ItemGroup>

对于所有三个页面,我都收到相同的错误消息,而且我得到的唯一错误与这些不存在的错误有关。没有其他编译错误。

对于这些 dll 中的每一个,调试版本的路径(属性)是 bin\Debug 目录,但我不知道这是如何设置的。

我不确定如何将这些包放入我的 bin\release 目录(除了手动复制它们)。有人可以解释我错过了什么,或者做错了什么。

最佳答案

谢谢你的回复。我已经解决了这个问题,并提高了我对这一切如何运作的理解。

Nuget 将获取包并将它们放入解决方案目录中的包目录中。它还将以下 packages.config 文件添加到解决方案目录:

<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DocumentFormat.OpenXml" version="2.5" targetFramework="net45" />
<package id="ExcelDataReader" version="2.1.2.3" targetFramework="net45" />
<package id="SharpZipLib" version="0.86.0" targetFramework="net45" />
</packages>

.csproj 文件中的“提示路径”。这由编译器使用,提供程序集文件的源位置,这些文件会根据需要复制到相关的 bin\Debug 或 bin\Release 目录:
 <ItemGroup>
<Reference Include="DocumentFormat.OpenXml, Version=2.5.5631.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>packages\DocumentFormat.OpenXml.2.5\lib\DocumentFormat.OpenXml.dll</HintPath>
</Reference>
<Reference Include="Excel, Version=2.1.2.3, Culture=neutral, PublicKeyToken=93517dbe6a4012fa, processorArchitecture=MSIL">
<HintPath>packages\ExcelDataReader.2.1.2.3\lib\net45\Excel.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73, processorArchitecture=MSIL">
<HintPath>packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll</HintPath>
</Reference>
</ItemGroup>

我的问题是我删除了'HintPath',因为它直接指向错误,然后没有任何效果。我的 bin\Debug 中的程序集从那里构建引用错误的程序集文件集的调试版本。上面的代码块现在可以正常工作了。

关于compiler-errors - VS2017 Nuget 包在编译时复制到 bin\debug 但不是 bin\release,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47168949/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com