在Visual Studio,Windows 7 x64中“生成Win32资源时出错”

时间:2010-05-18 17:35:36

标签: visual-studio visual-studio-2008 visual-studio-2010 windows-7-x64

我的联合开发人员和我最近将机器升级到Windows 7 Ultimate 64位。我们中的一些人看到了一个我们在Visual Studio中构建解决方案时常常看不到的新错误(在2008年和2010年都发生过):

  

生成Win32资源时出错:进程无法访问该文件,因为该文件正由另一个进程使用。

它始终指向输出文件夹中的某个临时文件,例如:

  

MyProject的\ OBJ \调试\ CSC5123.tmp

这种情况大约每四个左右发生一次。然后我们将尝试再次运行相同的构建,并且通常会成功。但在某些情况下,它会在同一个项目中再次失败,在相同的情况下,它将在另一个项目上失败。真的没有押韵或理由。但它非常令人沮丧,特别是在构建运行20秒左右之后才会发生。

这也不会发生在我们所有的同事身上。它大约有四分之一的开发人员。对于一个,它发生在四个构建中的一个,而对于其他三个,它永远发生。

哦,我提到过我们都在使用同一张图片制作的机器吗? :)

提前感谢您提供的任何方向。

1 个答案:

答案 0 :(得分:0)

我找到了答案。至少它是有效的。添加

<IntermediateOutputPath>C:\Users\user\AppData\Local\Temp\vs9267.tmp\Debug\</IntermediateOutputPath>

到你的

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
项目设置文件中的

节点。 Volaa!

示例代码适用于我的项目:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Debug\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <IntermediateOutputPath>C:\Users\ZGRSNM~1\AppData\Local\Temp\vs9267.tmp\Debug\</IntermediateOutputPath>
  </PropertyGroup>
  <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>
    <IntermediateOutputPath>C:\Users\ZGRSNM~1\AppData\Local\Temp\vs9267.tmp\Release\</IntermediateOutputPath>
  </PropertyGroup>