c# - 如何避免将引用的项目配置复制到 bin 文件夹
问题描述
早上好,亲爱的社区。
我想询问有关复制引用项目的配置文件的问题。我一直试图解决我的问题将近两天,但没有取得任何结果。
问题是我有 MyFinance.Repositories 类库,其中包含其 MyFinance.Repositories.appsetting.json 文件。它的“复制到输出目录”属性的值为“始终复制”。
另外,我有 MyFinance.Api 项目,它引用了 MyFinance.Repositories。
当我构建 MyFinance.Api 时,MyFinance.Repositories.appsetting.json 被复制到 MyFinance.Api\bin\Debug\netcoreapp3.1 文件夹。
交易是我想阻止它。我发现最好的假设是使用带有 AllowedRelatedFileExtensions 属性的 ResolveAssemblyReference 任务。
MyFinance.Api.scproj 的片段:
<ItemGroup>
<ProjectReference Include="..\MyFinance.Repositories\MyFinance.Repositories.csproj">
<Targets>
<ResolveAssemblyReference AllowedRelatedFileExtensions=".xml;.pdb"></ResolveAssemblyReference>
</Targets>
</ProjectReference>
</ItemGroup>
但它不起作用。所以,请帮助我)提前谢谢你。
PS MyFinance.Repositories.appsetting.json 的属性“复制到输出目录”必须是“始终复制”。PPS 在构建后删除此文件也是无效的。
解决方案
实际上,它MyFinance.Repositories.appsetting.json
是一个内容资源 json 文件,而不是运行时输出文件。所以AllowedRelatedFileExtensions
andAllowedReferenceRelatedFileExtensions
属性没有处理资源文件的工作。
属性节点只能处理生成的运行时、输出文件(pdb、dev.json、xml、...),而不是更新资源文件的副本。
您可以使用 txt 资源文件和带有<AllowedReferenceRelatedFileExtensions>*.txt</AllowedReferenceRelatedFileExtensions>
的输出pdb
文件对其进行测试<AllowedReferenceRelatedFileExtensions>*.pdb</AllowedReferenceRelatedFileExtensions>
,然后您会发现不同之处。
解决方案
所以最好的解决方案是删除文件,在MyFinance.Api.csproj
文件下添加这些:
<Target Name="DeleteFile" AfterTargets="_CopyOutOfDateSourceItemsToOutputDirectory">
<Delete Files="$(TargetDir)MyFinance.Repositories.appsettings.json"></Delete>
</Target>
推荐阅读
- docker - 如何从 ubuntu 容器中访问 php 和 composer 服务
- node.js - MongoDB - 按具有相同值的字段数量对集合进行排序
- spring - JSR-380 - 嵌套对象和 FieldError ObjectName 的 Bean 验证
- sql - 计算两个日期之间的工作时间 - 包括周末
- python - Kafka Producer TypeError:列表索引必须是整数或切片,而不是字典
- python - 如何解决张量流 cpu dll not found 错误
- android - 在Android中将位图转换为(图形。)路径
- ios - 我可以在 swift 中的文本之间放置一个 UIButton 或 UITextField 或 UITextView
- java - IntelliJ IDEA:如何导入具有 Java 和 JavaScript 模块的项目?
- unit-testing - TypeError: testing.TestBed.inject is not a function ( jestjs with spectator )