我想使用VS 2017简化我的ASP.NET核心Web应用程序(.NET Framework)应用程序中的配置.
我已经知道我的网站将在x64环境下的Windows/IIS和.NET 4.6.2下运行.在此应用程序的预见和未预见的未来,没有机会使用从开发到生产的任何其他环境.
所以,我只需要Debug x64和Release x64模式.(不需要AnyCPU和x86!),所以我继续从项目中删除了所有其他配置.
现在,在编译时,我收到以下错误:
'C:\ Projects\MyProject\My.Website\obj\project.assets.json'没有'.NETFramework,Version = v4.6.2/win7-x64'的目标.
确保已为TargetFramework ='net462'和RuntimeIdentifier ='win7-x64'恢复此项目.MD.Website C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\build\Microsoft.NET.Sdk.targets
我在Windows 7上开发,我不知道如何解决这个问题.任何的想法?
我正在使用动态库(.dll)和x64模式中的VS 2012开发C++/CLI项目.
如果我将模式切换到静态库,我会收到以下错误.
错误1错误C1107:找不到程序集'mscorlib.dll':请使用/ AI指定程序集搜索路径或通过设置LIBPATH环境变量C:\ Depot\Main\Current\Sln\ALibraryProject\Stdafx.cpp 1 1 ALibraryProject
我尝试删除对mscorlib.dll的引用,然后再从以下位置添加它:
项目>属性>常规>公共属性
但这没有帮助.我知道VS处理对.NET程序集的引用,我不想添加磁盘文件引用,因为它似乎不合逻辑!以前有人面对这个吗?
所以,我有一个DBContext,我正在做以下操作:
dbContext.SomeTables1.Add(object1)
dbContext.SomeTables2.AddRange(objectArray2)
dbContext.SomeTables3.AddRange(objectArray3)
dbContext.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
EF不按此顺序插入db记录,它以随机顺序插入它们.要按相同的顺序插入它们,我必须dbContext.SaveChanges()
在每次添加后再执行一次.这不是一个有效的解决方案,在我的情况下,我需要10秒钟来完成所有插入,而一次保存的随机顺序大约需要3秒.
NB我需要正确的命令来解决死锁问题.
我的问题是:
- 这个问题在EF7中解决了吗?
- 我可以对EF进行概要分析并确定随机顺序,但是,是否可以保证它与相同的随机顺序保持一致,还是在请求之间进行更改?(如果这个问题的答案是肯定的,我可以采用我的其他代码).
- 维持订单是否有比
dbContext.SaveChanges()
每次添加更好的方法?
c# entity-framework entity-framework-6 entity-framework-core
这是使用Visual Studio 2012的ReSharper 7.下面的示例
// This code works fine and as expected and ReShrper is happy with it
if (!string.IsNullOrWhiteSpace(extension) && extension.Length == 3)
{
// do something
}
// ReSharper highlights "extension" in extension.Length with "Possible 'System.NullReferenceException'"
if (!extension.IsNullOrWhiteSpace() && extension.Length == 3)
{
// do something
}
Run Code Online (Sandbox Code Playgroud)
并且,我创建了以下扩展方法:
public static class StringExtensions
{
public static bool IsNullOrWhiteSpace(this string s)
{
return string.IsNullOrWhiteSpace(s);
}
}
Run Code Online (Sandbox Code Playgroud)
我查看了反映的代码,String.IsNullOrWhiteSpace
它没有任何相关的代码或属性,这些代码或属性会突出显示R#验证检查.这是硬编码在R#?
我查看了代码合同,但我不确定它会对我的情况有所帮助.
您是否有一种解决方法可以向ReSharper证明我的扩展方法已经验证了检查条件?
c# resharper extension-methods code-contracts nullreferenceexception
使用Visual Studio 2017,我使用.NET Framework创建了一个ASP.NET Core站点.(我没有project.json
,我有一个VS2017项目.cproj
)
我的目标是x64 Windows 2008R2.我.cproj
看起来像下面的开头:
<Project Sdk="Microsoft.NET.Sdk.Web" ToolsVersion="15.0">
<PropertyGroup>
<TargetFrameworks>net462</TargetFrameworks>
<RuntimeIdentifier>win7-x64</RuntimeIdentifier>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\Debug</OutputPath>
<DefineConstants>TRACE;DEBUG</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<PlatformTarget>x64</PlatformTarget>
<OutputPath>bin\Release</OutputPath>
<Optimize>True</Optimize>
</PropertyGroup>
...
Run Code Online (Sandbox Code Playgroud)
但是,虽然我只针对.NET 4.6.2,但当我尝试发布时,我收到此错误
C:\ Program Files(x86)\ Microsoft Visual Studio\2017\Enterprise\MSBuild\Sdks\Microsoft.NET.Sdk\buildCrossTargeting\Microsoft.NET.Sdk.targets(31,5):错误:'发布'目标是不指定目标框架就不受支持.当前项目针对多个框架,请指定已发布应用程序的框架.
在网上寻找解决方案的同时,我遇到了遇到同样问题的人,但他们确实有很多目标,但是,在我的情况下,我不确定为什么我会得到它.
有任何想法吗?
在.NET应用程序中,如果您有特定的设置需求,例如将它们存储在数据库中,那么您可以替换LocalFileSettingsProvider
为您的示例的自定义设置提供程序:
要声明ApplicationSettingsBase
要使用特定提供程序的设置类(继承的类),请使用它来装饰它SettingsProviderAttribute
并将提供程序类型作为参数传递[SettingsProvider(typeof(MyCustomProvider))]
,否则它将使用默认值LocalFileSettingsProvider
.
我的问题:是否有一个配置或技巧可以强制我的应用程序在不使用属性的情况下在整个应用程序中使用我的自定义提供程序?
原因是我通过MEF加载插件,插件可能是通过第三方编写的,我不希望他们关心如何处理设置.
在Excel中,我有一个VBA模块MyModule
,它具有这样的功能
Public Function MyFunction(Param1 As Range, Param2 As Range) As String
' some implementation
End Function
Run Code Online (Sandbox Code Playgroud)
在运行时,我知道我有一个调用的模块MyModule
,我知道我有一个函数调用,MyFunction
但我想动态检查参数名称Param1
和Param2
在我的世界(C#)中,这称为反射.我可以在这里使用类似的概念来获取参数名称,还是我对VBA的期望过高?
EF Core 1.1和SQL Server 2016
我们正在运行一个微服务应用程序,其中一些微服务具有独立的几个表.为单个微服务提供许多表的解决方案之一是为这些服务提供一个独特的模式(例如,不是DBO),并将所有这些服务放在一个数据库中(有利于成本和维护).
这在EF 6中运行良好,但是,查看核心中生成的dbo .__ EFMigrationsHistory,看起来核心并没有考虑架构.
我知道EF Core中的迁移已经改为查看代码而不是DB,但我的问题是dbo中记录的版本.__ EFMigrationsHistory表与模式无关.
您是否知道在将迁移写入数据库时如何使EF Core架构感知?
NB builder.HasDefaultSchema(Constants.SCHEMA);
已在DBContext中设置.
c# sql-server entity-framework ef-migrations entity-framework-core
(实体框架6,.NET 4,VS 2010)
我创建了一个小型的Blog项目来说明问题.这是一个博客,有很多帖子,但只有一个帖子作为主要帖子.
public class Blog
{
public int Id { get; set; }
public string Name { get; set; }
public virtual ICollection<Post> PostEntities { get; set; }
public int? MainPostId { get; set; }
[ForeignKey("MainPostId")]
public virtual Post MainPostEntity { get; set; } // Problem here
}
public class Post
{
public int Id { get; set; }
public int BlogId { get; set; }
[ForeignKey("BlogId")]
public virtual Blog BlogEntity { get; set; }
public string Title …
Run Code Online (Sandbox Code Playgroud) 自EF Core 2.1起,尚不支持始终加密的SQL Server功能.
我正在使用SQL Server 2016和Azure SQL,并且所有客户端都是基于Windows的.
c# ×7
asp.net-core ×2
msbuild ×2
.net-4.6.2 ×1
64-bit ×1
app-config ×1
c++-cli ×1
project.json ×1
publish ×1
reflection ×1
resharper ×1
sql-server ×1
vba ×1