0

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

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

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

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

我的 Visual Studio 版本是 2012。

4

1 回答 1

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" />
于 2016-03-31T10:48:16.087 回答