我有,我想我的构建C#项目时,执行自定义任务。此任务位于MyTask.dll,它引用另一个组件,MyCommon.DLL。

的问题是,MyCommon.dll位于“.. \普通\ MyCommon.dll”相对于MyTask.dll,这使它的应用平台dir来MSBuild的过程之外。我已经确认这确实是通过分析的MSBuild的日志,看到融合的有关绑定失败报告的问题。

我能做些什么,使融合在构建过程中找到MyCommon.dll?请注意,移动所述组件将打破我的应用程序,这也依赖于它。

更新:嗯,看来我将使用一个副本毕竟去。其他解决方案都需要全系统的修改,这是不是真的在这里保证。

有帮助吗?

解决方案

所以复制它呢?只是一个想法。有一个副本那里只是为了支持您删除一旦你用它做的构建。

其他提示

这是一种选择是使用 ILMerge 以合并依赖到任务组件。

所有这些“解决方案”的创建多个依赖关系所处的环境复杂化。应该有更新在运行时探测路径更简单的方法..

具体的MSBuild应允许您在.proj文件添加探测路径,或指定依赖DLL

可以定义定制UsingTask:

<UsingTask TaskName="Task" AssemblyFile="Assembly.dll" />

但你不能添加依赖?它应包括......这里的东西,如

<UsingTask TaskName="Task" AssemblyFile="Assembly.dll">
<DependantAssembly AssemblyFile="dependant.dll"/>
</UsingTask>

但是,不,这不是支持...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top