我有两个项目的解决方案:
项目A通过项目依赖性引用项目B. 项目B包含一个文件夹,在此文件夹中有一些文件。
这些文件的属性设置为:
Build Action
Content
Copy to Output Directory
Copy if newer
(也尝试使用Copy Always
)当我构建项目B时,内容文件夹中的文件将被复制到项目B的输出文件夹。
例如项目B / bin中/调试/ contentfolder /文件
当我重建项目A时,内容文件夹中的文件将被复制到项目A的输出文件夹中。
例如项目A / bin中/调试/ contentfolder /文件
当我构建项目A时,内容文件夹中的文件不被复制到项目A的输出文件夹。
例如ProjectA / bin / debug / contentfolder / 此处没有文件
我可以理解Visual Studio是否由于某种原因“无法看到”依赖项目中的文件,并且文件从未复制到ProjectA的输出中。
但事实并非如此,因为它在重建过程中起作用。
所以我觉得我做错了什么,没有注意到,或者Visual Studio做错了什么,需要修复。
我发现这个问题与我的问题类似:Visual Studio Build vs Rebuild: Why are my DLLs only sometimes being copied into the output directory?
然而它没有任何答案,并且它不是重复的,因为我更清楚我的解决方案布局以及发生此行为的环境。
有一个较旧的问题,此处有一个接受的答案:Why the native DLL is not copied to the output directory
但它说:
(注意:他们对项目A / B的使用与我的相反。)
如果C#项目B直接引用项目A,VS会将项目A使用的所有相关文件复制到项目B的输出目录。
在我的案例中显然没有发生这种情况,这是我提问的基础!
对我来说,有两种解决办法显而易见:
但它们都有相同的缺点:
这不应该是必要的!这在Rebuild下工作的事实表明这也适用于Build,但是出了点问题。
这是一个手动更改,开发人员在添加对项目B的引用时必须了解并采取措施。只需添加项目引用并使其全部工作就不容易出错。
< / LI>答案 0 :(得分:1)
我有类似的问题 - 有内容(在我的情况下为connections.config)被复制到2个项目 - 两个项目都在重建时复制了文件,但其中一个没有在构建时复制它。
我已经添加了对源项目本身的引用,现在它工作得很好,我假设在项目没有引用的构建时没有看到项目详细信息,而在“重建所有“它确实。