我们已将其中一个Web项目升级到ASP.NET Core 2.0,并且由于程序集版本不匹配而导致其他项目出现错误。我正在尝试将所有冲突的程序集升级到最高版本。
例如, System.Collections.Immutable nuget包的先前版本为1.3.1,但ASP.NET Core 2项目引用的版本为1.4.0版。所以我尝试在.csproj文件中更改它,其中引用了 System.Collections.Immutable :
<?php
get_header();
$is_page_builder_used = et_pb_is_pagebuilder_used( get_the_ID() );
?>
<?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
<?php echo do_shortcode('[et_pb_section global_module="218"][/et_pb_section]'); ?>
<?php endif; ?>
<div id="main-content">
<?php if ( ! $is_page_builder_used ) : ?>
<div class="container">
<div id="content-area" class="clearfix">
<div id="left-area">
<?php endif; ?>
<?php while ( have_posts() ) : the_post(); ?>
<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<?php if ( ! $is_page_builder_used ) : ?>
<h1 class="entry-title main_title"><?php the_title(); ?></h1>
<?php
$thumb = '';
$width = (int) apply_filters( 'et_pb_index_blog_image_width', 1080 );
$height = (int) apply_filters( 'et_pb_index_blog_image_height', 675 );
$classtext = 'et_featured_image';
$titletext = get_the_title();
$thumbnail = get_thumbnail( $width, $height, $classtext, $titletext, $titletext, false, 'Blogimage' );
$thumb = $thumbnail["thumb"];
if ( 'on' === et_get_option( 'divi_page_thumbnails', 'false' ) && '' !== $thumb )
print_thumbnail( $thumb, $thumbnail["use_timthumb"], $titletext, $width, $height );
?>
<?php endif; ?>
<div class="entry-content">
<?php
the_content();
if ( ! $is_page_builder_used )
wp_link_pages( array( 'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'Divi' ), 'after' => '</div>' ) );
?>
</div> <!-- .entry-content -->
<?php
if ( ! $is_page_builder_used && comments_open() && 'on' === et_get_option( 'divi_show_pagescomments', 'false' ) ) comments_template( '', true );
?>
</article> <!-- .et_pb_post -->
<?php endwhile; ?>
<?php if ( ! $is_page_builder_used ) : ?>
</div> <!-- #left-area -->
<?php get_sidebar(); ?>
</div> <!-- #content-area -->
</div> <!-- .container -->
<?php endif; ?>
<?php if ( ! (function_exists('is_cart') && is_cart()) || ( ! function_exists('is_account_page') && is_account_page()) || ( ! function_exists('is_checkout') && is_checkout() ) ) : ?>
<?php echo do_shortcode('[et_pb_section global_module="247"][/et_pb_section]'); ?>
<?php endif; ?>
</div> <!-- #main-content -->
<?php get_footer(); ?>
但是,这会导致编译错误:
此项目使用的Microsoft.NET.Sdk版本不足以支持对面向.NET Standard 1.5或更高版本的库的引用。请安装.NET Core SDK 2.0或更高版本。
首先,我确实安装了.NET Core 2.0 SDK。谷歌搜索周围有一些建议,我将&lt; DependsOnNETStandard&gt; 属性添加到csproj文件并引用NETStandard.Library。但是,我无法做到这一点,因为我们的代码充分利用了.NET Framework,包括不在 netstandard 中的内容。
我怎样才能让它发挥作用?
仅供参考,我们使用的是Visual Studio 15.3.3和.NET 4.6.2。
答案 0 :(得分:0)
将DependsOnNETStandard添加到csproj文件中,并且对.NETStandard.Library的引用不会破坏与完整框架的兼容性。我目前正在开发一个完全符合这一要求的项目 - 针对.NET Framework 4.6.1的ASP.NET Core 2.0 Web应用程序,引用.NET Standard和.NET Framework类库以及许多OOB .NET Standard软件包。