项目包含一个Fody Name.Of weaver根据包含的解决方案工作

时间:2016-03-31 10:10:22

标签: c# projects-and-solutions compile-time-weaving fody paket

我遇到的问题是,在一个解决方案中,Fody编织,在我的情况下是Fody.NameOf,不起作用。

我创建了一个新的解决方案,复制了有问题的项目,在这个解决方案中,编织工作!

在新的解决方案中,我没有配置任何特殊内容,例如:启用Fody或其他东西。

在“原始”解决方案中,我最近从NuGet迁移到了Paket,这可能与此问题有关。

我的Visual Studio版本是2012年。

1 个答案:

答案 0 :(得分:0)

在区分项目文件夹时,我发现项目文件存在差异

此块

  <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" />