2017-01-03 9 views
0

나는 Microsoft.OData.Client v 6.13.0을 shfbproj 파일의 Microsoft.OData.ProxyExtensions에 대해 구성했습니다. Microsoft.OData.ProxyExtensions는 MS 웹 사이트의 정보를 기반으로 모든 OData.Client> = 6.11.0을 허용하므로 좋을 것입니다. (둘 다 실제로 Office365.OutlookServices-V2.0에서 가져옵니다.) 그러나 Sandcastle을 사용하여 프로젝트 API 설명서를 컴파일 할 때 다음 오류가 발생했습니다.Sandcastle의 해결되지 않은 어셈블리

<buildStep step="GenerateReflectionInfo"> 
Generating reflection information... 
[C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe] 
Build started 1/3/2017 11:08:08 AM. 
Project &quot;C:\inetpub\wwwroot\AppServerDevHelp\Working\GenerateRefInfo.proj&quot; on node 1 (default targets). 
PrepareForBuild: 
    Creating directory &quot;obj\Debug\&quot;. 
GenerateRefInfo: 
    MRefBuilder (v2015.1.12.0) 
    Copyright c 2006-2015, Microsoft Corporation, All Rights Reserved. 
    Portions Copyright c 2006-2014, Eric Woodruff, All Rights Reserved. 
    Loaded 2 assemblies for reflection and 44 dependency assemblies. 
MRefBuilder : error : Unresolved assembly reference: Microsoft.OData.Client (Microsoft.OData.Client, Version=6.11.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35) required by Microsoft.OData.ProxyExtensions [C:\inetpub\wwwroot\AppServerDevHelp\Working\GenerateRefInfo.proj] 
    Last step completed in 00:00:02.3886 
</buildStep> 
<buildStep step="Failed"> 

SHFB: Error BE0043: Unexpected error detected in last build step. See output above for details. 
    at SandcastleBuilder.Utils.BuildEngine.BuildProcess.RunProcess(String fileToRun, String args) 
    at SandcastleBuilder.Utils.BuildEngine.BuildProcess.Build() 

</buildStep> 

아래는 내 shfbproj 파일로의 OData.Client 구성은 아래

<?xml version="1.0" encoding="utf-8"?> 
    <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> 
    <PropertyGroup> 
     <!-- The configuration and platform will be used to determine which 
      assemblies to include from solution and project documentation 
      sources --> 
     <Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration> 
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> 
     <SchemaVersion>2.0</SchemaVersion> 
     <ProjectGuid>{0b7a8c51-1f48-436d-b9b6-9eb76b3ebd1e}</ProjectGuid> 
     <SHFBSchemaVersion>1.9.5.0</SHFBSchemaVersion> 
     <!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual 
      Studio adds them anyway --> 
     <AssemblyName>Documentation</AssemblyName> 
     <RootNamespace>Documentation</RootNamespace> 
     <Name>Documentation</Name> 
     <!-- SHFB properties --> 
     <OutputPath>C:\inetpub\wwwroot\AppServerDevHelp\</OutputPath> 
     <HtmlHelpName>x y Reference</HtmlHelpName> 
     <FrameworkVersion>.NET Framework 4.0</FrameworkVersion> 
     <HelpFileFormat>Website</HelpFileFormat> 
     <DocumentationSources> 
     <DocumentationSource sourceFile="zShared\zShared.csproj" /> 
     <DocumentationSource sourceFile="zWebService\zWebService.csproj" /> 
     </DocumentationSources> 
     <WorkingPath> 
     </WorkingPath> 
     <SandcastlePath> 
     </SandcastlePath> 
     <ProjectLinkType>Local</ProjectLinkType> 
     <HelpTitle>x y Reference</HelpTitle> 
     <CopyrightText>x International Inc. 2017</CopyrightText> 
     <CopyrightHref>http://www.x.com</CopyrightHref> 
     <FeedbackEMailAddress>webapps.support%40x.com</FeedbackEMailAddress> 
     <VisibleItems>Attributes, ExplicitInterfaceImplementations, InheritedMembers</VisibleItems> 
     <SyntaxFilters>CSharp, VisualBasic, CPlusPlus, JScript, JavaScript</SyntaxFilters> 
     <NamespaceSummaries> 
     <NamespaceSummaryItem name="(global)" isDocumented="False" /> 
     <NamespaceSummaryItem name="zServer" isDocumented="False" /> 
     <NamespaceSummaryItem name="zServer.FilterBuilders" isDocumented="False" /> 
     <NamespaceSummaryItem name="zWebService" isDocumented="False" /> 
     </NamespaceSummaries> 
     <PlugInConfigurations> 
     </PlugInConfigurations> 
     <RootNamespaceContainer>False</RootNamespaceContainer> 
     <ComponentConfigurations> 
     <ComponentConfig id="Code Block Component" enabled="True"> 
      <component id="Code Block Component" type="SandcastleBuilder.Components.CodeBlockComponent" assembly="{@SHFBFolder}SandcastleBuilder.Components.dll"> 
      <basePath value="{@HtmlEncProjectFolder}" /> 
      <outputPaths>{@HelpFormatOutputPaths}</outputPaths> 
      <allowMissingSource value="false" /> 
      <removeRegionMarkers value="false" /> 
      <colorizer syntaxFile="{@SHFBFolder}Colorizer\highlight.xml" styleFile="{@SHFBFolder}Colorizer\highlight.xsl" stylesheet="{@SHFBFolder}Colorizer\highlight.css" scriptFile="{@SHFBFolder}Colorizer\highlight.js" language="cs" tabSize="0" numberLines="false" outlining="false" keepSeeTags="false" defaultTitle="true" /> 
      </component> 
     </ComponentConfig> 
     </ComponentConfigurations> 
     <NamingMethod>MemberName</NamingMethod> 
     <BuildLogFile> 
     </BuildLogFile> 
     <HtmlHelp1xCompilerPath> 
     </HtmlHelp1xCompilerPath> 
     <HtmlHelp2xCompilerPath> 
     </HtmlHelp2xCompilerPath> 
     <MissingTags>Summary, Parameter, Returns, AutoDocumentCtors, Namespace, TypeParameter, AutoDocumentDispose</MissingTags> 
     <CollectionTocStyle>Flat</CollectionTocStyle> 
     <SdkLinkTarget>Blank</SdkLinkTarget> 
     <PresentationStyle>VS2010</PresentationStyle> 
     <Preliminary>False</Preliminary> 
     <Language>en-US</Language> 
     <ContentPlacement>AboveNamespaces</ContentPlacement> 
    </PropertyGroup> 
    <!-- There are no properties for these groups. AnyCPU needs to appear in 
     order for Visual Studio to perform the build. The others are optional 
     common platform types that may appear. --> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Win32' "> 
    </PropertyGroup> 
    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Win32' "> 
    </PropertyGroup> 
    <ItemGroup> 
     <ProjectReference Include="zShared\zShared.csproj"> 
     <Name>zShared</Name> 
     <Project>{3C5798A6-AE6B-45DE-8CC8-06708385E025}</Project> 
     </ProjectReference> 
    </ItemGroup> 
    <ItemGroup> 
     <Reference Include="ComWrapperLibrary"> 
     <HintPath>zWebService\bin\ComWrapperLibrary.dll</HintPath> 
     </Reference> 
     <Reference Include="zWebService"> 
     <HintPath>zWebService\bin\zWebService.dll</HintPath> 
     </Reference> 
     <Reference Include="Microsoft.OData.Client"> 
     <HintPath>packages\Microsoft.OData.Client.6.13.0\lib\net40\Microsoft.OData.Client.dll</HintPath> 
     </Reference> 
    </ItemGroup> 
    <!-- Import the SHFB build targets --> 
    <Import Project="$(SHFBROOT)\SandcastleHelpFileBuilder.targets" /> 
    </Project> 

모래성이 구성이 shfbproj 파일에 있었지만 어셈블리를 찾지 못했습니다 것이다. 나는 이것을 v 6.13으로 어떻게 해결할 수 있을지 궁금해하고 있었다.

**** 6.11 OData.client를 다운로드하여이 문제를 해결하고 파일의 구성을 업데이트했습니다. 하지만 나는 거의 같은 두 어셈블리를 유지해야하기 때문에 이런 식으로하고 싶지 않습니다. 단지 당신이 [email protected][email protected] 또는 다음 중 하나를 수행 할 수 있습니다 리디렉션에 리디렉션에게 플러그인을 바인딩 총회를 사용할 수 있습니다 덕분에

답변

2

, 6.13 싶어 확인되지 않은 경우 무시하도록 어셈블리 목록에 Microsoft.OData.Client을 추가하십시오.

Assembly Binding Redirection plug-in에 대한 설명서를 참조하십시오.

팁 : 바인딩 리디렉션 버전 당신이 종속성을 업데이트 할 때마다 업데이트 할 필요가 없도록 나는 ConfigurationFile 옵션을 사용하십시오.

+0

감사합니다. tokafew420. 작년 말부터 내게 유령이되었습니다. 정말 귀중한 충고를 해 주신 것에 진심으로 감사드립니다. 나는 좋은 잠을 다시 가질 수있다. – user1888955