MSBuild告诉我它无法找到以下任务中包含的引用(这是一个内联任务):
<Task>
<Reference Include="WindowsBase" />
<Reference Include="$(SolutionDir)ImageTextWriter\bin\$(Configuration)\ImageTextWriter.dll" />
...
</Task>
我已确认此文件实际存在于指定路径中。然而,MSBuild返回
System.IO.FileNotFoundException:无法加载文件或程序集&#39; ImageTextWriter,Version = ...
我做错了吗?
注意:我不是MSBuild专家,但this post告诉我硬编码路径应该有用。
答案 0 :(得分:1)
我想知道强大的装配命名是否是罪魁祸首。尝试替换
"apikey"
"endpoints"
"iam_apikey_description"
"iam_apikey_name"
"iam_role_crn"
"iam_serviceid_crn"
"resource_instance_id"
带
<Reference Include="$(SolutionDir)ImageTextWriter\bin\$(Configuration)\ImageTextWriter.dll" />
如果失败了,请重新考虑在构建中早期<Reference Include="$(SolutionDir)ImageTextWriter\bin\$(Configuration)\ImageTextWriter.dll">
<SpecificVersion>False</SpecificVersion>
</Reference>
清除ImageTextWriter.dll
的可能性是否有所负责(尽管您之前对详细日志输出的检查似乎排除了这一点):
bin/
手动复制到项目外的任意文件夹中。ImageTextWriter.dll
路径更改为该文件副本的完整硬编码路径。修改强>
我做了一些测试并发现:
Include
元素位于SpecificVersion
时,不允许Reference
元数据。我上面的第一个想法非常多!但是,在您使用Task
和<Task>
的上下文中,属性展开需要将<Task Evaluate="True">
更改为$(SolutionDir)
。
$(Configuration)
以下是导致我尝试它的文档(强调我的):
UsingTaskBodyType包含内联任务实现。 内容对MSBuild不透明。
UsingTaskBodyType_Evaluate ...在使用之前身体是否应该扩展属性。默认为false。
答案 1 :(得分:0)
你可以试试那个:
<Reference Include="ImageTextWriter">
<HintPath>$(SolutionDir)ImageTextWriter\bin\$(Configuration)\ImageTextWriter.dll</HintPath>
</Reference>
但如果这是创建ImageTextWriter.dll
的项目,我不认为这是可能的。