我有几个.csproj文件,为了扩展构建过程,我将向其中导入一个通用的.targets文件。这些项目位于不同的目录中。.targets文件位于解决方案目录中。如何引用.targets文件的位置来导入它?有一个解决方案目录属性,但是如果开发人员只是构建一个项目,这个属性就不起作用了。我做什么好?我使用的是.NET 4.5和Visual Studio2015。
发布于 2016-08-17 15:50:47
正如你所认为的,一个项目不知道它所包含的解决方案,而且可以说它不应该知道。因此,从项目的角度来看,你不能通过编程来找出一个完全不相关的文件所在的位置。除了扫描整个文件系统来寻找它。有一些替代方案:
我曾经使用过所有这些,最后我认为第一个是更好的:你只需要坚持一个目录约定-你无论如何都需要跨多个目录的项目或具有公共共享内容的项目-仅此而已。例如,我们有一大堆常见的msbuild文件,它们都在一个存储库中。开始一个新项目总是归结为创建一个目录,克隆公共文件dir并添加一个新的项目dir。这可以很容易地实现自动化,在典型的CI服务器上也能很好地工作。第二种选择也是可行的,但它依赖于一个正确的设置环境,该环境不太‘自包含’,如果开发人员开始在机器的全局环境变量设置和本地环境变量设置中输入变量,则会变得非常混乱,依此类推。第三个问题类似,但更糟糕,因为现在只有一个正确的位置。
https://stackoverflow.com/questions/38984931
复制相似问题