【发布时间】:2017-11-07 03:36:14
【问题描述】:
MSBuild 告诉我它找不到包含在以下任务中的引用(这是一个内联任务):
<Task>
<Reference Include="WindowsBase" />
<Reference Include="$(SolutionDir)ImageTextWriter\bin\$(Configuration)\ImageTextWriter.dll" />
...
</Task>
我已确认此文件确实存在于指定路径。然而 MSBuild 返回了
System.IO.FileNotFoundException: 无法加载文件或程序集 'ImageTextWriter, Version=...
我是不是做错了什么?
注意:我不是 MSBuild 专业人士,但 this post 告诉我硬编码路径应该可以工作。
【问题讨论】:
-
尝试打印出您正在使用的扩展版路径。路径可能与您的预期不同。如果不是,那么引用的二进制文件的版本或 .net 版本可能存在问题
-
如果您从宏中获得未定义路径,this 帖子可能会有用。
-
@Jan:我打印了那条路径,似乎没问题。 DLL 使用的是 .NET 4.5,但解决方案中的所有其他项目也都在使用它。
-
构建规则可能检查得太早,MSBuild 会尝试跳过不必要的工作。使用 /verbose 选项可以详细跟踪它检查的内容。考虑通过解释为什么你认为你需要自己写这个来得到一个真正对你有帮助的答案。
-
@HansPassant:我通读了 MSBuild 输出。看起来它成功构建了
ImageTextWriter并将其复制到bin目录。因此,它开始处理我的内联任务,但无法再找到ImageTextWriter程序集。这两个步骤在输出中彼此相邻列出;中间没有任何东西可以怀疑 DLL 可能已被删除。