【问题标题】:How to force Sgen to create .net 3.5 serializers assembly如何强制 Sgen 创建 .net 3.5 序列化程序程序集
【发布时间】:2011-03-22 00:23:06
【问题描述】:

我的 .NET 3.5 库中有一个 sgen 构建步骤。在 VS2010 中,这会生成 .NET 4 MyLib.XmlSerializers.dll,无法从 .NET 3.5 应用程序加载。有谁知道如何更改构建步骤以获得正确版本的程序集?是否可以将 IL 序列化程序程序集和库合并到单个 dll 中?

这是我的 sgen 构建步骤:

<Target Name="AfterBuild" DependsOnTargets="AssignTargetPaths;Compile;ResolveKeySource" Inputs="$(MSBuildAllProjects);@(IntermediateAssembly)" Outputs="$(OutputPath)$(_SGenDllName)">
    <!-- Delete the file because I can't figure out how to force the SGen task. -->
    <Delete Files="$(TargetDir)$(TargetName).XmlSerializers.dll" ContinueOnError="true" />
    <SGen BuildAssemblyName="$(TargetFileName)" BuildAssemblyPath="$(OutputPath)" References="@(ReferencePath)" ShouldGenerateSerializer="true" UseProxyTypes="false" KeyContainer="$(KeyContainerName)" KeyFile="$(KeyOriginatorFile)" DelaySign="$(DelaySign)" ToolPath="$(SGenToolPath)">
      <Output TaskParameter="SerializationAssembly" ItemName="SerializationAssembly" />
    </SGen>
  </Target>

谢谢

编辑:我发现了同样的问题here,但我会等待一段时间,看看是否有人有更好的解决方案。

【问题讨论】:

    标签: c# visual-studio-2010 sgen


    【解决方案1】:

    您可以使用 .NET 3.5 sgen.exe

    ToolPath="C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin"
    

    您需要确保包含您想要sgen 的类型的程序集面向.NET 3.5。

    【讨论】:

    • 有像 $(SGen35ToolPath) 这样的东西还是我必须硬编码这条路径?
    猜你喜欢
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2020-01-24
    • 1970-01-01
    • 2011-04-23
    • 2015-05-29
    • 2011-11-01
    相关资源
    最近更新 更多