2017-07-23 29 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行可以删除)