5 c# visual-studio visual-studio-2017
我有两个项目的解决方案:
项目A通过项目依赖项引用项目B。
项目B包含一个文件夹,并且该文件夹中有一些文件。
这些文件的属性设置为:
Build Action
Content Copy to Output Directory
Copy if newer(也尝试过Copy Always)当我构建项目B时,内容文件夹中的文件将复制到项目B的输出文件夹中。
例如ProjectB / bin / debug / contentfolder / files
当我重建 Project A时,内容文件夹中的文件将复制到Project A的输出文件夹中。
例如ProjectA / bin / debug / contentfolder / files
当我构建项目A时,内容文件夹中的文件不会复制到项目A的输出文件夹中。
例如,ProjectA / bin / debug / contentfolder / 这里没有文件
我可以理解Visual Studio是否由于某种原因“看不到”依赖项目中的文件,并且这些文件从未复制到ProjectA的输出中。
但这不是事实,因为它在重建期间有效。
因此,感觉就像是我做错了什么,没有注意到,或者Visual Studio做错了,需要修复。
我发现了与我的问题类似的问题:Visual Studio构建与重建:为什么有时仅将我的DLL复制到输出目录中?
但是,它没有任何答案,并且也不是重复的,因为我更明确地说明了我的解决方案布局以及发生这种情况的情况。
有一个较旧的问题,这里有一个可接受的答案:为什么本机DLL不复制到输出目录
但它说:(
注意:他们对A / B项目的使用与我的相反。)
如果C#项目B直接引用项目A,则VS会将项目A使用的所有相关文件复制到项目B的输出目录中。
在我看来,这显然没有发生,这是我提出问题的基础!
对我来说,有两种变通方法:
但是它们都有相同的缺点:
这没必要!在Rebuild下可以正常工作的事实表明,它也可以在Build上工作,但是出了点问题。
这是开发人员在添加对项目B的引用时必须意识到的手动更改,并且只需采取操作即可。只需添加项目引用并使其全部正常运行,就不容易出错。
小智 1
我遇到了类似的问题 - 内容(在我的情况下是connections.config)被复制到2个项目 - 两个项目在重建时都复制了文件,但其中一个项目没有在构建时复制它。
我添加了对源项目本身的引用,现在它工作得很好,我假设在构建时项目没有引用时看不到项目详细信息,而在“重建全部”时它会看到项目详细信息。