1

为了能够发布单个 .exe,我已将Costura /Fody 包添加到我的 C# 项目中。我以前使用过这个包,但现在我收到以下错误消息:

MSBUILD:错误:Fody:AssemblyPath "C:\Projects\X\MSBuild\obj\x86\Debug\X.exe" 不存在。如果您尚未进行构建,则可以忽略此错误。完成 Fody 4ms。

奇怪的是,中间 X.exe 在这里正确构建:

C:\Projects\X\src\X\obj\x86\Debug\X.exe

我正在做的项目相当大。因此,我们使用几个 MSBuild 道具文件将所有内容放在 corect 输出目录中。从命令行使用 MSBuild 构建和从 Visual Studio 中构建都可以正常工作。所以我假设我们的道具文件是正确的。为什么 Fody 会在这样一个奇怪的地方寻找中介?

Fody 可能使用的哪个 MSBuild 变量控制此中间路径?

4

1 回答 1

2

查看引发异常的代码,我看到了一个非常简单的 File.Exists 检查。这一切都源于 ProjectDirectory(在 WeavingTask 中),您可以在此处检查使用该值的位置。

由于我没有使用过 Fody,所以我不能告诉你更多。我会特别注意配置文件,因为我没有看到 ProjectDirectory 在任何地方构建,只是从某个地方注入。

于 2016-03-31T09:52:52.913 回答