簡體   English   中英

Visual Studio安裝項目中的錯誤-無法加載文件或程序集log4net或其依賴項之一。 該系統找不到指定的文件

[英]Error in visual studio setup project-Could not load file or assembly log4net or one of it's dependencies. The system cannot find the file specified

我知道那里有很多線程和問題。 因此,請讓我在這里說明情況。

我正在使用Visual c#,vsto和外接程序表達框架開發Ms-Word外接程序 我從nuget軟件包管理器添加了一個log4net組件。 當我嘗試構建或調試項目時。 它工作正常。

但是,僅當我嘗試使用附加快遞擴展名創建安裝項目時( 右鍵單擊項目>附加快遞>創建安裝項目 )。 單擊后,它給我一個錯誤(在彈出窗口中)

無法加載文件或程序集“ log4net,版本= 2.0.8.0文化=中性,PublicKeyToken = 669e0ddf0bb1aa2a”或其依賴項之一。 該系統找不到指定的文件。

我檢查了版本,項目中log4net.dll的多個引用,package.config和project.csproj文件中的路徑。 所有這些都沒有問題。

當我嘗試從頭開始創建新的類似項目時,請添加log4net。 有效。 但是目前的項目還沒有。 可能是什么原因?

我將不勝感激任何幫助。 我真的被這個困住了。

以下是配置:

項目目標框架是“ .Net framework 4

package.config

<packages>
  <package id="Apache.NMS" version="1.7.1" targetFramework="net40" />
  <package id="Apache.NMS.ActiveMQ" version="1.7.2" targetFramework="net40" />
  <package id="log4net" version="2.0.8" targetFramework="net40" />
  <package id="Newtonsoft.Json" version="10.0.3" targetFramework="net40" />
</packages>

的app.config

<configSections>    
...
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL" />
...
</configSections>
<log4net>
      <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <param name="File" value="logFile.log"/>
        <param name="DatePattern" value="'logFile_'yyyy-MM-dd'.log'"/>
        <preserveLogFileNameExtension value="true" />
        <appendToFile value="true" />
        <rollingStyle value="Size" />
        <maxSizeRollBackups value="5" />
        <maximumFileSize value="5MB" />
        <staticLogFileName value="true" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%date [%thread] %level %logger - %message %newline %exception" />
        </layout>
      </appender>
      <root>
        <level value="INFO"/>
        <appender-ref ref="RollingFileAppender"/>
      </root>
    </log4net>

Product.csproj

<ItemGroup>
<Reference Include="Accessibility" />
<Reference Include="AddinExpress.MSO.2005, Version=8.2.4371.0, Culture=neutral, PublicKeyToken=4416dd98f0861965, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\..\Program Files (x86)\Add-in Express\Add-in Express for .NET\Bin\AddinExpress.MSO.2005.dll</HintPath>
</Reference>
<Reference Include="AddinExpress.OL.2005, Version=8.2.4371.2005, Culture=neutral, PublicKeyToken=e69a7e0f3592d2b8, processorArchitecture=MSIL" />
<Reference Include="AddinExpress.ToolbarControls.2005, Version=8.2.4371.2005, Culture=neutral, PublicKeyToken=16211aef6795d6cc, processorArchitecture=MSIL" />
<Reference Include="AddinExpress.WD.2005, Version=7.5.4072.2005, Culture=neutral, PublicKeyToken=e69a7e0f3592d2b8, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
</Reference>
<Reference Include="ADXOLWizard.2005, Version=8.2.4371.2005, Culture=neutral, processorArchitecture=MSIL" />
<Reference Include="Apache.NMS">
  <HintPath>..\packages\Apache.NMS.1.7.1\lib\net40\Apache.NMS.dll</HintPath>
</Reference>
<Reference Include="Apache.NMS.ActiveMQ">
  <HintPath>..\packages\Apache.NMS.ActiveMQ.1.7.2\lib\net40\Apache.NMS.ActiveMQ.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
  <HintPath>..\packages\log4net.2.0.8\lib\net40-full\log4net.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Office.Interop.Outlook, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Office.Interop.Word, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Office.Tools.Word, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Microsoft.Vbe.Interop, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
  <HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net40\Newtonsoft.Json.dll</HintPath>
  <Private>True</Private>
</Reference>
<Reference Include="Office, Version=15.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL">
  <EmbedInteropTypes>True</EmbedInteropTypes>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Configuration.Install" />
<Reference Include="System.Data" />
<Reference Include="System.DirectoryServices" />
<Reference Include="System.DirectoryServices.AccountManagement" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="UIAutomationProvider" />
<Reference Include="WindowsBase" />
<Reference Include="WindowsFormsIntegration" />

我以前有這個問題。 在我的情況下,問題是同一NuGet的不同版本被不同的組件使用。 解決方案是添加程序集綁定,基本上建立一個映射,並說“當引用從0.0.0.0到2.0.8.0的任何版本的log4net時,只需使用2.0.8.0”。

嘗試在app.config添加以下塊。 如果已經存在,請確保版本正確(更新NuGet軟件包時,有時會不同步)。

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />
        </dependentAssembly>
        ...
    </assemblyBinding>
</runtime>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM