我们使用PowerShell脚本部署SQL数据库。该脚本使用SqlPackage.exe实用工具来发布我们的主数据库,在我们将SSDT升级到最新版本SSDT 2015时,它工作正常,当时它声明抛出以下错误。
PowerShell脚本行:
& "C:\Program Files (x86)\Microsoft SQL Server\120\DAC\bin\SqlPackage.exe" /Action:Publish /SourceFile:"$DatabaseDacpacLocation" /TargetServerName:$DataServerSqlInstance /TargetDatabaseName:$Database /Variables:master="$MasterDatabase" /v:DatabaseName="$pDatabaseName" /p:ExcludeObjectType=Sequences
Run Code Online (Sandbox Code Playgroud)
错误:
未处理的异常:System.TypeInitializationException:Microsoft.SqlServer.Dac.DacPackage的类型初始值设定项引发了异常。---> System.TypeInitializationException:Microsoft.SqlServer.Dac.DacServices的类型初始值设定项引发了异常。---> System.TypeInitializationException:'SqlSchemaModelStaticState'的类型初始值设定项引发了异常。---> System.IO.FileNotFoundException:无法加载文件或程序集'Microsoft.SqlServer.TransactSql.ScriptDom,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91'或其依赖项之一。该系统找不到指定的文件。
deployment powershell dacpac sqlpackage sql-server-data-tools
在以下示例中,初始图标呈现但在类更改时不会更改.
const Circle = ({ filled, onClick }) => {
const className = filled ? 'fas fa-circle' : 'far fa-circle';
return (
<div onClick={onClick} >
<i className={className} />
<p>(class is {className})</p>
</div>
);
};
class App extends React.Component {
state = { filled: false };
handleClick = () => {
this.setState({ filled: !this.state.filled });
};
render() {
return <Circle filled={this.state.filled} onClick={this.handleClick} />;
}
}
ReactDOM.render(<App />, document.getElementById("root"));Run Code Online (Sandbox Code Playgroud)
<script src="https://use.fontawesome.com/releases/v5.0.2/js/all.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>Run Code Online (Sandbox Code Playgroud)
我想测试的类是我的ArticleManager类,特别是LoadArticle方法:
public class ArticleManager : IArticleManager
{
private IArticle _article;
public ArticleManger(IDBFactory dbFactory)
{
_dbFactory = dbFactory;
}
public void LoadArticle(string title)
{
_article = _dbFactory.GetArticleDAO().GetByTitle(title);
}
}
Run Code Online (Sandbox Code Playgroud)
我的ArticleDAO看起来像:
public class ArticleDAO : GenericNHibernateDAO<IArticle, int>, IArticleDAO
{
public virtual Article GetByTitle(string title)
{
return Session.CreateCriteria(typeof(Article))
.Add(Expression.Eq("Title", title))
.UniqueResult<Article>();
}
}
Run Code Online (Sandbox Code Playgroud)
[SetUp]
public void SetUp()
{
_mockDbFactory = new Mock<IDBFactory>();
_mockArticleDao = new Mock<ArticleDAO>();
_mockDbFactory.Setup(x => x.GetArticleDAO()).Returns(_mockArticleDao.Object);
_articleManager = new ArticleManager(_mockDbFactory.Object);
}
[Test]
public void load_article_by_title() …Run Code Online (Sandbox Code Playgroud) 我正在使用Mono和Lokad质量库来开发一个API,它可以检查方法的特征,看看它们是否会抛出异常等等.
我在此API中使用的一种方法如下所示:
// Get all methods which have a NotImplementedException
var throwingMethods = _codebase.Methods
.Where(m => m.GetInstructions()
.Exists(i => i.Creates<NotImplementedException>())
).ToArray();
return throwingMethods;
Run Code Online (Sandbox Code Playgroud)
我怎么能对它进行单元测试?C#没有自己的本机能力做同样的事情.也许我可以只有一个小组件,制作一个硬编码的集合,并进行比较?
谢谢
在部署到IIS或AppFabric时,如何在Web.config中配置自定义工作流扩展(例如PersistenceParticipant后代)?(对于WF 4)
configuration web-config workflow-foundation workflow-foundation-4
如何在.NET 4下的Windows Workflow Foundation活动中从父作用域动态设置变量值?
失败的尝试(在Sequence具有名为Test的int变量的工作流上删除Sequence活动):
public sealed class CodeActivity1 : NativeActivity
{
protected override void CacheMetadata(NativeActivityMetadata metadata)
{
_locationReferences =
metadata.Environment.GetLocationReferences().ToList();
base.CacheMetadata(metadata);
}
protected override void Execute(NativeActivityContext context)
{
LocationReference locationReference =
_locationReferences.Find(
x => x.Name == "Test" && x.Type == typeof (int));
if (locationReference != null)
{
Console.WriteLine(
locationReference.Name + " " + locationReference.Type);
// Blows up here.
Location location = locationReference.GetLocation(context);
location.Value = 5;
}
}
private List<LocationReference> _locationReferences;
}
Run Code Online (Sandbox Code Playgroud)
这导致:
用户代码未处理System.InvalidOperationException
消息=活动'1.2:CodeActivity1'无法访问此变量,因为它在活动'1.1:Sequence'的范围内声明.活动只能访问自己的实现变量.
它确实找到了变量; 它无法获得或设定其价值.
变量名称(上例中的"Test")直到运行时才会知道.
我想使用我的记录器写入两个不同的文件,声明如下:
public static final Logger logger = Logger.getLogger(Adapt.class);
PropertyConfigurator.configure("log4j.properties");
Run Code Online (Sandbox Code Playgroud)
log4j文件包含:
log4j.rootLogger=DEBUG, FA
#File Appender
log4j.appender.FA=org.apache.log4j.FileAppender
log4j.appender.FA.File=temp.ppr
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.append=false
log4j.appender.FA.layout.ConversionPattern= %m%n
Run Code Online (Sandbox Code Playgroud)
是否可以使用记录器轻松地将不同的文本写入两个不同的文件?
如果没有,有没有办法用两个记录器做到这一点?(我尝试过并因为函数configure而出现问题,这是静态的.)
谢谢.
我们通过NuGet将Nancy从v1.2.0更新到1.3.0.根据更改日志,似乎没有与我们的应用程序相关的重大更改.但是我们现在得到运行时错误
找不到方法:'Nancy.ErrorPipeline Nancy.ErrorPipeline.op_Addition(Nancy.ErrorPipeline,System.Func`3)'.
在
base.ApplicationStartup(container, pipelines);
Run Code Online (Sandbox Code Playgroud)
在我们的CustomBootstrapper中.我们正在使用Nancy.Bootstrappers.Autofac并拥有自定义的IStatusCodeHandler.
我已经清理了packages文件夹以及bin/obj文件夹,并验证了包恢复后只有一个版本的Nancy.
我该如何解决或排除故障?
我的karma.conf.js包括:
plugins: [
'karma-jasmine',
'karma-phantomjs-launcher',
'karma-ng-html2js-preprocessor'
],
preprocessors: {
'../../mypath/*.html': ['ng-html2js']
},
ngHtml2JsPreprocessor: {
moduleName: 'templates'
},
Run Code Online (Sandbox Code Playgroud)
(我试过没有指定任何插件.)
我的开发依赖包括:
"karma-ng-html2js-preprocessor": "^0.2.0"`
Run Code Online (Sandbox Code Playgroud)
我的测试包括:
beforeEach(module('templates'));
Run Code Online (Sandbox Code Playgroud)
这些给出了错误:
Module 'templates' is not available!
Run Code Online (Sandbox Code Playgroud)
运行业力--log-level debug,我没有看到任何[preprocessor.html2js]条目.(我知道了Loading plugin karma-ng-html2js-preprocessor.)
我究竟做错了什么?
我已经多次搜索过这个问题的答案了,但我不知道这种方法被调用了什么,所以我的搜索结果没用,我也无法向搜索引擎解释.
你如何创建一个方法,使用它附加的变量作为它的参数(如"myVariable**.ToString()**)?"
.ToString()适用于我追加它的任何变量,并使用它后面的变量作为参数,而不是在括号内输入参数......我想做的一个例子是:
private void OpenExcel(string inFileName)
{
Excel.Application xlApp = new Excel.ApplicationClass();
Excel.Workbook xlBook = xlApp.Workbooks.Open(inFileName
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing, Type.Missing, Type.Missing
, Type.Missing, Type.Missing);
Excel.Worksheet xlSheet = (Excel.Worksheet)xlBook.Worksheets[1];
xlApp.Quit();
xlApp.releaseObject();
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch (Exception)
{
obj = null;
}
finally
{
GC.Collect();
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这是一个愚蠢的例子,但它显示了我想用"xlApp.releaseObject()"做什么.
另外......有人可以告诉我这种方法(或者呼叫类型,不管是什么类型)被叫什么?我讨厌不知道.
c# ×4
unit-testing ×2
.net ×1
autofac ×1
dacpac ×1
deployment ×1
file ×1
font-awesome ×1
java ×1
javascript ×1
karma-runner ×1
log4j ×1
logging ×1
moq ×1
nancy ×1
ng-html2js ×1
nhibernate ×1
powershell ×1
reactjs ×1
sqlpackage ×1
web-config ×1