gpt4 book ai didi

visual-studio-2010 - 如何在Msbuild中将SGEN工具路径设置为目标3.5框架

转载 作者:行者123 更新时间:2023-12-03 13:10:38 27 4
gpt4 key购买 nike

我刚刚将项目从VS2008升级到了VS2010,但我仍然针对3.5框架。

在我的项目文件中,我有一个自定义任务,可以运行SGEN生成XmlSerializers.dll。但是,正在运行的sgen版本针对4.0框架。结果,当我运行我的应用程序时,我收到错误消息:

“无法加载文件或程序集'XXXX.XXXX.XmlSerializers'或其依赖项之一。此程序集是由比当前加载的运行时新的运行时构建的,无法加载。”

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>


有ToolPath =“ $(SGenToolPath)”。如何使其运行针对3.5的版本?

有一个类似的问题,但对我没有太大帮助。

最佳答案

我已通过手动配置ToolPath使其指向sgen.exe的旧版本(版本2.0.50727.3038)解决了此问题

在我的计算机上,该文件位于:C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin

我将ToolPath属性更改为:

ToolPath="C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin"


这样就解决了问题。

默认情况下,它似乎在运行新的4.0框架版本:C:\ Program Files(x86)\ Microsoft SDKs \ Windows \ v7.0A \ Bin \ NETFX 4.0 Tools

希望这对其他人有帮助。

关于visual-studio-2010 - 如何在Msbuild中将SGEN工具路径设置为目标3.5框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2748974/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com