2017-07-23 81 views
0

我想將我的sln從xproj + project.json遷移到csproj。 我對我的project.json我的集成測試項目:保存appsettings.json從xproj,porject.json到csproj的集成測試映射

"buildOptions": { 
"copyToOutput": { 
    "mappings": { 
    "appsettings.json": "../../src/WebApp/appsettings.json", 
    "appsettings.testing.json": "../../src/WebApp/appsettings.testing.json" 
    } 
} 
} 

當我打開與Visual Studio 2017的.sln,它會自動轉換爲:

<ItemGroup> 
<None Update="..\..\src\WebApp\appsettings.testing.json"> 
    <Link>appsettings.testing.json</Link> 
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
</None> 
<None Update="..\..\src\WebApp\appsettings.json"> 
    <Link>appsettings.json</Link> 
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
</None> 

但現在集成測試停止工作,因爲它沒有找到appsettings.json文件。 它拋出:

錯誤消息: System.IO.FileNotFoundException:找不到該配置文件「appsettings.json」未找到和不是可選的。物理路徑是'C:\ Work \ billing-app \ test \ IntegrationTests \ bin \ Debug \ netcoreapp1.1 \ appsettings.json'。

我該如何解決這個問題,因此它會繼續將實際配置文件複製到集成測試項目中? 10倍!

回答

0

的解決辦法是添加到我的web項目的csproj:

<ItemGroup> 
<Content Update="appsettings.json"> 
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> 
</Content> 

和它的作品。

(上面提到的integrationTest項目的csproj行可以刪除)