我正在使用 Costura.Fody 将所有 dll 嵌入到我的应用程序程序集中。
有什么方法可以在调试构建模式下禁用 Costura.Fody?如何使 Costura.Fody 仅在发布或自定义构建配置中工作?
我正在使用 Costura.Fody 将所有 dll 嵌入到我的应用程序程序集中。
有什么方法可以在调试构建模式下禁用 Costura.Fody?如何使 Costura.Fody 仅在发布或自定义构建配置中工作?
一种解决方案可能是检查您的.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 扩展在某些构建环境中运行的简单用例。
默认情况下,包只在您的文件中Costura.Fody
添加一行:*.csproj
<Import Project="Fody.targets" />
将其替换为
<Import Project="Fody.targets" Condition=" '$(Configuration)' == 'Release' " />
根据Costura Github的说法,更好的方法是打开.csproj
并在第一行插入以下行<PropertyGroup>
:
<DisableFody Condition="'$(Configuration)' == 'Debug'">true</DisableFody>
这样,如果有包更新,您不必再次修改文件