我遇到的问题是,在一种解决方案中,Fody 编织(在我的情况下为 Fody.NameOf)不起作用。
我创建了一个新的解决方案,复制了有问题的项目,在这个解决方案中,编织工作!
在新的解决方案中,我没有配置任何特殊的东西,例如启用 Fody 或其他东西。
在“原始”解决方案中,我最近从 NuGet 迁移到了 Paket,这可能与问题有关。
我的 Visual Studio 版本是 2012。
我遇到的问题是,在一种解决方案中,Fody 编织(在我的情况下为 Fody.NameOf)不起作用。
我创建了一个新的解决方案,复制了有问题的项目,在这个解决方案中,编织工作!
在新的解决方案中,我没有配置任何特殊的东西,例如启用 Fody 或其他东西。
在“原始”解决方案中,我最近从 NuGet 迁移到了 Paket,这可能与问题有关。
我的 Visual Studio 版本是 2012。
比较项目文件夹时,我发现项目文件有所不同
这块
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.6.1'">
<PropertyGroup>
<__paket__Fody_targets>Fody</__paket__Fody_targets>
</PropertyGroup>
</When>
</Choose>
放置不同。调整后,它在两种解决方案中都有效。
我不是 MSBuild 方面的专家,但在我看来,在非工作版本中 fody在编译之前运行,所以结果可能会被覆盖。
工作项目:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Content Include="FodyWeavers.xml" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="NameOfPaket.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="paket.references" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.6.1'">
<PropertyGroup>
<__paket__Fody_targets>Fody</__paket__Fody_targets>
</PropertyGroup>
</When>
</Choose>
不工作的项目:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<Choose>
<When Condition="$(TargetFrameworkIdentifier) == '.NETFramework' And $(TargetFrameworkVersion) == 'v4.6.1'">
<PropertyGroup>
<__paket__Fody_targets>Fody</__paket__Fody_targets>
</PropertyGroup>
</When>
</Choose>
<ItemGroup>
<Content Include="FodyWeavers.xml" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="NameOfPaket.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="paket.references" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />