2017-07-25 61 views
-1

我想在c#中使用Json.net來編寫一個json文件。當我構建代碼時,它生成良好,並創建一個parser.exe罰款。但是當我嘗試它需要運行它給我一個錯誤無法加載文件或程序集Newtonsoft.Json

System.IO.FileNotFoudException: Could not load file or assembly 
'Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4f...' 
or one of its dependencies. The system cannot file the file specified. 

我需要Newtonsoft DLL複製到它需要運行的服務器一個單獨的服務器上運行的parser.exe。任何幫助將不勝感激 。

+0

是的。您需要複製所有依賴集合謊言,圖書館和DLL到你運行exe的目標位置。 –

+0

你使用什麼類型的IDE? – EasyE

+0

我正在使用visual studio社區版2015 – jarus

回答

0

版本可能有所不同。依賴程序集需要10.0.0.0,但是您引用了另一個版本。添加到您的應用程序配置:提到

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
      <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-10.0.0.0" newVersion="10.0.0.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 

版本只是一個例子

此外確保是參考的設置如下: enter image description here

+0

Visual Studios通過nuget安裝時將這些密鑰添加到配置文件中。 – EasyE

+0

這是真的,但不是沒有nuget –

+0

嗨@Kees de Wit是否需要將視覺工作室安裝在需要運行parser.exe的服務器中 – jarus

2

確保引用的DLL通過右鍵單擊參考,選擇屬性並將Copy Local設置爲True,將其設置爲部署到bin文件夾。

UPDATE:

發生了什麼事是你必須在DLL本地引用,但是當你部署你的程序,它從目標計算機上缺失。

通過設置參考始終被複制,您的bin文件夾將有一個它的副本,所以只要您正確部署它(包括bin文件夾),它應該工作。

+0

如果你倒下了某些東西,至少留下一個註釋來解釋爲什麼或以某種方式提高答案是很常見的禮節。 – JuanR

+1

我被拒絕投票自己,我不知道爲什麼? Smh – EasyE

1

是的,您需要複製位於Bin文件夾中的整個Debug或Release文件夾。建議的話確保你重建你的解決方案,以便獲得最近所做的所有更改。

C:\文件夾\項目\ ConsoleAppTest \ ConsoleAppTest \ BIN \推出

-OR-

C:\文件夾\項目\ ConsoleAppTest \ ConsoleAppTest \ bin \ Debug

+0

你覺得他真的忘了複製所有文件? –

+0

@KeesdeWit是的,我相信他確實做到了,我熟悉他正在嘗試做什麼,特別是他收到的那條信息。 – EasyE

相關問題