none
编译时候经常丢失Interop.WMPLib RRS feed

  • 问题

  • 在wpf用播放视频用了winForm中的库.添加了AxInterop.WMPLib和Interop.WMPLib.但是编译几次之后就提示Interop.WMPLib文件丢失.

    不管设置为嵌入互操作类型选择true还是false都是一样. 求赐教

    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
      <PropertyGroup>
        <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
        <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
        <ProductVersion>8.0.30703</ProductVersion>
        <SchemaVersion>2.0</SchemaVersion>
        <ProjectGuid>{57243068-0C62-414C-AAC9-AAF772051F2B}</ProjectGuid>
        <OutputType>library</OutputType>
        <AppDesignerFolder>Properties</AppDesignerFolder>
        <RootNamespace>VideoControl</RootNamespace>
        <AssemblyName>VideoControl</AssemblyName>
        <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
        <TargetFrameworkProfile>Client</TargetFrameworkProfile>
        <FileAlignment>512</FileAlignment>
        <ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
        <DebugSymbols>true</DebugSymbols>
        <DebugType>full</DebugType>
        <Optimize>false</Optimize>
        <OutputPath>..\Xinshubiao\bin\Debug\Plugins\</OutputPath>
        <DefineConstants>DEBUG;TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
        <DebugType>pdbonly</DebugType>
        <Optimize>true</Optimize>
        <OutputPath>..\Xinshubiao\bin\Release\Plugins\</OutputPath>
        <DefineConstants>TRACE</DefineConstants>
        <ErrorReport>prompt</ErrorReport>
        <WarningLevel>4</WarningLevel>
      </PropertyGroup>
      <ItemGroup>
        <Reference Include="Interop.WMPLib">
          <HintPath>..\Xinshubiao\bin\Debug\Interop.WMPLib.dll</HintPath>
          <EmbedInteropTypes>True</EmbedInteropTypes>
        </Reference>
        <Reference Include="MediaControl">
          <HintPath>..\Xinshubiao\bin\Debug\MediaControl.dll</HintPath>
          <Private>False</Private>
        </Reference>
        <Reference Include="System" />
        <Reference Include="System.Data" />
        <Reference Include="System.Windows.Forms" />
        <Reference Include="System.Xml" />
        <Reference Include="Microsoft.CSharp" />
        <Reference Include="System.Core" />
        <Reference Include="System.Xml.Linq" />
        <Reference Include="System.Data.DataSetExtensions" />
        <Reference Include="System.Xaml">
          <RequiredTargetFramework>4.0</RequiredTargetFramework>
        </Reference>
        <Reference Include="WindowsBase" />
        <Reference Include="PresentationCore" />
        <Reference Include="PresentationFramework" />
        <Reference Include="WindowsFormsIntegration" />
      </ItemGroup>
      <ItemGroup>
        <Compile Include="VideoControl.cs" />
      </ItemGroup>
      <ItemGroup>
        <Compile Include="Properties\AssemblyInfo.cs">
          <SubType>Code</SubType>
        </Compile>
        <Compile Include="Properties\Resources.Designer.cs">
          <AutoGen>True</AutoGen>
          <DesignTime>True</DesignTime>
          <DependentUpon>Resources.resx</DependentUpon>
        </Compile>
        <Compile Include="Properties\Settings.Designer.cs">
          <AutoGen>True</AutoGen>
          <DependentUpon>Settings.settings</DependentUpon>
          <DesignTimeSharedInput>True</DesignTimeSharedInput>
        </Compile>
        <EmbeddedResource Include="Properties\Resources.resx">
          <Generator>ResXFileCodeGenerator</Generator>
          <LastGenOutput>Resources.Designer.cs</LastGenOutput>
        </EmbeddedResource>
        <None Include="Properties\Settings.settings">
          <Generator>SettingsSingleFileGenerator</Generator>
          <LastGenOutput>Settings.Designer.cs</LastGenOutput>
        </None>
        <AppDesigner Include="Properties\" />
      </ItemGroup>
      <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
      <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
           Other similar extension points exist, see Microsoft.Common.targets.
      <Target Name="BeforeBuild">
      </Target>
      <Target Name="AfterBuild">
      </Target>
      -->
    </Project>
    


    • 已移动 Jie Bao 2011年11月24日 2:50 (发件人:Windows Presentation Foundation)
    2011年11月23日 8:18

答案

  • 你的项目用了版本控制,所以你需要确认下,你在本地编译的时候,相关的Assembly有没有Get下来,是否还是留在了版本控制服务器端。还有你的版本控制软件是否会忽略Check in Debug下面的文件,请检查下,因为自动生成的 Interop 程序集会放在Debug下面 或者 Release下面,而有些版本控制软件可以设置成忽略这些输出的文件Check in到服务器。

    还有Interop.WMPLib 和AxInterop.WMPLib这两者是否你都需要用到,在Windows 7中,其实就一个 Interop.WMPLib 就够了。

     


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 xyzdumpling 2011年12月1日 12:57
    2011年11月25日 3:46

全部回复

  • 我个人建议用 EmbedInteropTypes = false,还有建议你先remove然后再add一边。

    这个问题与WPF技术无关,纯粹是一个项目编译和Interop程序集的问题,移至.Net一般讨论。


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    2011年11月24日 2:50
  • 在同一个解决方案用两个项目同时引用这个DLL然后编译的时候按F5编译.会不会存在问题.
    2011年11月24日 7:07
  • 不会。 EmbedInteropTypes = false 和 true 我都试过。 不过不知道你的这两个项目有没有依赖关系,还有你要仔细看下 Interop 程序集的Path路径等信息是否正确。
    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    2011年11月24日 7:55
  • 应该是正确的,因为刚添加之后的几次编译都不会有问题.但是编译整个解决方案的时候就容易出问题

     

    2011年11月24日 8:34
  • 我想应该是 要么出错 要么不出错,这个应该没有一个可能的问题。

    希望你能够重现问题,然后给我们看看是否有一些特殊的设置在你的项目里面。 

    还有,检查你的项目之间的依赖性,右击解决方案>属性 


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us

    • 已编辑 Jie Bao 2011年11月24日 9:52
    2011年11月24日 9:47
  • VIDEO项目的设置和这个类似.引用的控件也类似
    2011年11月25日 1:56
  • 你的项目用了版本控制,所以你需要确认下,你在本地编译的时候,相关的Assembly有没有Get下来,是否还是留在了版本控制服务器端。还有你的版本控制软件是否会忽略Check in Debug下面的文件,请检查下,因为自动生成的 Interop 程序集会放在Debug下面 或者 Release下面,而有些版本控制软件可以设置成忽略这些输出的文件Check in到服务器。

    还有Interop.WMPLib 和AxInterop.WMPLib这两者是否你都需要用到,在Windows 7中,其实就一个 Interop.WMPLib 就够了。

     


    Bob Bao [MSFT]
    MSDN Community Support | Feedback to us
    • 已标记为答案 xyzdumpling 2011年12月1日 12:57
    2011年11月25日 3:46
  • 不好意思几天没上了,最近在公司的网络经常登录不上去msdn.说到这里我想到了可能确实是svn的问题.明天到公司试试.
    2011年12月1日 12:58