13

我正在使用 Costura.Fody 将所有 dll 嵌入到我的应用程序程序集中。

有什么方法可以在调试构建模式下禁用 Costura.Fody?如何使 Costura.Fody 仅在发布或自定义构建配置中工作?

4

3 回答 3

14

一种解决方案可能是检查您的.csproj文件并将条件添加到与 Fody 相关的行。像这样的东西:

<Content Include="FodyWeavers.xml" Condition=" '$(Configuration)' == 'Release' " />

<Import Project="..\..\packages\Fody.1.29.4\build\dotnet\Fody.targets" Condition="Exists('..\..\packages\Fody.1.29.4\build\dotnet\Fody.targets') And '$(Configuration)' == 'Release' " />

当然,这主要适用于您不希望任何 Fody 扩展在某些构建环境中运行的简单用例。

于 2016-03-15T11:40:55.793 回答
6

默认情况下,包只在您的文件中Costura.Fody添加一行:*.csproj

  <Import Project="Fody.targets" />

将其替换为

  <Import Project="Fody.targets" Condition=" '$(Configuration)' == 'Release' " />
于 2016-03-15T11:44:05.667 回答
6

根据Costura Github的说法,更好的方法是打开.csproj并在第一行插入以下行<PropertyGroup>

<DisableFody Condition="'$(Configuration)' == 'Debug'">true</DisableFody>

这样,如果有包更新,您不必再次修改文件

于 2018-09-17T10:23:41.750 回答