2017-09-27 80 views
0

我剛更新到Visual Studio 2017 v15.3Core 2.0 SDKVisual Studio 2017 v15.3不復制nlog.config

我與Igans Sakalauskas' Net Core Knockout project工作,它與Core 1.1建於2017年VS

https://ignas.me/tech/net-core-knockoutjs-web-application/

我已經離開EnableDefaultContentItems到的真實的默認和刪除Content Include語句從.csproj文件在WebApplication1.Web項目中。

他正在使用nlog,並且項目的根目錄中有nlog.config。該項目成功建立,但運行時拋出file not found error。它正在尋找WebApplication1.Web\bin\Debug\netcoreapp1.1文件夾中的nlog.config。如果我手動複製項目運行的文件並通過所有測試。

我無法工作的是VS在項目構建時複製nlog.config

如果我添加

<ItemGroup> 
    <Content Include="nlog.*" /> 
    </ItemGroup> 

.csproj我得到的Duplicate 'Content' items ... The duplicate items were: 'nlog.config'錯誤。 https://aka.ms/sdkimplicititems

如果我註釋掉Contnet Include並設置EnableDefaultContentItems

<PropertyGroup> 
    <EnableDefaultCompileItems>false</EnableDefaultCompileItems> 
</PropertyGroup> 

我得到一個 Suppression State Error CS5001 Program does not contain a static 'Main' method suitable for an entry point

如果我再恢復'內容Inculde的陳述就給出了這樣的錯誤:

Duplicate 'Content' items ... The duplicate items were: 'list of files'錯誤

Default Content Items正在wwwroot子文件夾中使用.js.cs文件。

如果VS拋出Duplicate Content錯誤當我Content Include一個項目爲什麼它不復制文件沒有Content Include

在VS 2017中15.3如何配置文件nlog.config從項目根目錄複製到bin子目錄?

回答

2

這與重複的內容項無關。在Visual Studio 2017中恢復爲recommended approach to handling duplicate content errors;這就是你開始:

I've left EnableDefaultContentItems to the default of true and removed the Content Include statements from the .csproj file in the WebApplication1.Web project.

現在添加到您的.csproj文件:

<ItemGroup> 
    <Content Update="nlog.config"> 
    <CopyToOutputDirectory>Always</CopyToOutputDirectory> 
    </Content> 
</ItemGroup> 

這就告訴Visual Studio來更新現有的內容規則(自動生成一個),它複製將該文件放入構建的輸出目錄中。

+0

你好Daniel。我剛剛發佈了我的答案,即在VS'nlog.config'中突出顯示,並在Properties中將Copy to Output Directory狀態更改爲將您的答案寫入'.csproj'。但你擊敗了我,所以你得到了投票。仍然沒有回答爲什麼設置「EnableDefaultContentItems」爲false的第二個問題不起作用。你有什麼想法嗎?請讓我知道,所以如果你不知道,我會知道發佈一個單獨的問題。 – Joe

+0

@Joe最可能的問題是:'EnableDefaultCompileItems'不在正確的位置,沒有被應用,或者內容包含問題。通過刪除內容包含並刪除「EnableDefaultCompileItems」來避免整個問題是最容易的,這對我來說非常有效,我還沒有發現需要EnableDefaultCompileItems。 –